- 博客(12)
- 收藏
- 关注
原创 socket选项(部分)
首先介绍两个专门用来读取和设置socket文件描述符属性的系统调用 getsockopt () & & sockopt () 函数原形: //读取socket文件描述符的属性int getsockopt(int sockfd , int level , int option_name , void* opt...
2021-01-31 11:55:17 171
原创 最大乘积,最大和---------连续子数组
最大连续乘积子数组遍历数组时计算当前最大值,不断更新令imax为当前最大值,则当前最大值为 imax = max(imax * nums[i], nums[i])由于存在负数,那么会导致最大的变最小的,最小的变最大的。因此还需要维护当前最小值imin,imin = min(imin * nums[i], nums[i])当负数出现时则imax与imin进行交换再进行下一步计算时间复杂度:O(n)class Solution {public: int maxProduct(vector
2021-01-30 11:58:27 93
原创 最长连续不重复子串
题目内容描述给定一个字符串,找出不含有重复字符的最长子串的长度。示例:给定 “abcabcbb” ,没有重复字符的最长子串是 “abc” ,那么长度就是3。给定 “bbbbb” ,最长的子串就是 “b” ,长度是1。给定 “pwwkew” ,最长子串是 “wke” ,长度是3。请注意答案必须是一个子串,”pwke” 是 子序列 而不是子串。代码:# include <iostream># include <string>using namespace std;i
2021-01-28 09:13:06 730
转载 c语言extern阐述
本文转载,详情请点击!1 基本解释:extern可以置于变量或者函数前,以标示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义。此外extern也可用来进行链接指定。 也就是说extern有两个作用,第一个,当它与"C"一起连用时,如: extern "C" void fun(int a, int b);则告诉编译器在编译fun这个函数名时按着C的规则去翻译相应的函数名而不是C++的,C++的规则在翻译这个函数
2021-01-27 11:37:43 458
原创 cjson格式学习
简介:JSON:JavaScript对象表示法(JavaScript Object Notation)。是一种轻量级的数据交换格式。它基于ECMAScript的一个子集。JSON采用完全独立于语言的文本格式,但是也使用了类似C语音家族的习惯(包括C、C++、C#、Java、JavaScript、Perl、Python等)。这些特性使JSON成为理想的数据交换语言。易于人阅读和编写,同时也易于机器解析和生成(一般用于提升网络传输速率)。JSON解析器和JSON库支持许多不同的编程语言。JSON文本格式在语
2021-01-25 21:54:38 648
原创 进程的问题-----fork()与vfork()的区别
fork()函数fork()函数:用于创建一个进程,所创建的进程复制父进程的代码段/数据段/BSS段/堆/栈等所有用户空间信息;在内核中操作系统重新为其申请了一个PCB,并使用父进程的PCB进行初始化;子进程执行的位置是fork()函数执行后的代码处创建成功后,fork是返回两个值,一个代表父进程,一个代表子进程:代表父进程的值是一串数字,这串数字是子进程的ID(地址);一个代表子进程,值为0。vfork()函数它与fork()函数最大的区别就是,共享了父进程的虚拟空间,共享了父进程的物理空
2021-01-24 16:54:19 109
转载 C语言线程相关函数
另外一篇博客,请点击!本篇博客为转载,原文请点击! 目录 创建线程和结束线程 线程属性 创建线程和结束线程 (1)线程创建函数 int pthread_create ( pthread_t *thread, const pthread_attr_t *attr, void *(*start_routine) (void *),
2021-01-24 16:14:32 1400 1
原创 什么是I/O多路复用?
IO多路复用是什么?回答:I/O多路复用,我觉得其实是一种机制,相比于之前的多进程,多线程来处理连接请求后的相关操作,I/O多路复用则可以一个进程或者一个线程去完成对这些I/O请求的操作,使得内核一旦发现进程指定的一个或多个IO条件就绪,它就通知进程。它的优点就是:与多进程和多线程技术相比,I/O多路复用技术的最大优势是系统开销小,系统不必创建进程/线程,也不必维护这些进程/线程,从而大大减小了系统的开销。IO复用应用的场合:(1)当客户处理多个描述字时(一般是交互式输入和网络套接口),必须
2021-01-23 17:16:10 461
原创 父子进程共享问题,进程与线程问题
父子进程子进程会拷贝父进程的所有资源,变量。(读时共享,写时复制)注意:子进程拷贝了父进程数据空间、堆、栈等资源的副本,父子进程间不共享这些存储空间,共享的空间只有代码段,子进程修改一个全局变量,父进程的这个全局变量不会改变,因为是一个副本。深度好文,请点击!进程与线程进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位.线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位.线程自己基本上不拥有系统资
2021-01-22 22:20:39 3441
转载 程序的内存模型
在一个多任务操作系统中的每个进程都运行在它自己的内存“沙箱”中。这个沙箱是一个虚拟地址空间(virtual address space),在 32 位系统中它总共有 4GB 的内存地址空间,包含内核空间和用户空间:这些虚拟地址是通过内核页表(page table)映射到物理地址的,并由操作系统内核维护。在典型的Linux 中,内核/用户空间的划分比例为1:3。但是,这并不意味着内核就使用了1G物理内存,它只使用了很少一部分可用的地址空间映射到其所需要的物理内存。内核空间的页表被标记,因此,如果一个用户模
2021-01-22 22:17:42 120
原创 面试集锦-------LRU,LFU手撕算法
LRU(最近最久未使用算法)思路:这里用到了两个数据结构,一个是list,另一个是unordeed_map我们的思路也很简单,在map中以key为键,值得话我们取相对应下list存储key的iterator,为什么呢?主要是我们可以利用map的O(1)的查找,如果能找得到,就表示List是存在这样的key的。 这里,我们以list的队尾为最近最久未使用的元素节点,也就是说队头的一定是刚刚使用过的节点。用一个结构体作为list的元素节点,node里面必须存储key和value !为什么要把k
2021-01-09 00:04:33 237
转载 进程函数-------fork与vfork
本文转载!详情请点击! fork()与vfock()都是创建一个进程,那他们有什么区别呢?总结有以下三点区别: 1. fork ():子进程拷贝父进程的数据段,代码段 vfork ( ):子进程与父进程共享数据段 2. fork ()父子进程的执行次序不确定 vfork 保证子进程先运行,在调用exec 或exit 之前与父进程数据是共享
2021-01-06 22:04:00 106
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人