摘要: 三个基本问题 1. 服务器请求处理完毕, 处理僵尸进程 2. 慢系统调用被SIGCHLD信号中断 3. 多个SIGCHLD同时到达的情况 wait和waitpid 子进程终止时会产生SIGCHLD信号并发送给父进程 父进程可以捕获处理该信号也可以不捕获 SIGCHLD只是个数值信号, 并不包含结束子 阅读全文
posted @ 2016-09-18 22:47 cfans1993 阅读(289) 评论(0) 推荐(0) 编辑
摘要: unp.h unp.c 阅读全文
posted @ 2016-09-18 22:46 cfans1993 阅读(235) 评论(0) 推荐(0) 编辑
摘要: IPv4套接字结构 套接字结构,定义IP地址与端口号,仅用于IPv4,不适用IPv6 通用套接字结构 由于IPv4,IPv6,域套接字的结构不一样,为了兼容性于是有了通用套接字结构 sockaddr通常用于函数的参数转换,结构大小随协议的不同而改变,在实际使用时,函数会要求传入一个结构大小的参数 s 阅读全文
posted @ 2016-09-18 22:46 cfans1993 阅读(275) 评论(0) 推荐(0) 编辑
摘要: 编译 要用gdb调试, 需要在gcc编译时加 g选项 gcc g main.c o main 基本命令 gdb [a.out] 开始调试a.out程序 start 停在main函数第一行语句等待下一个命令 run 执行到下一个断点, 或阻塞语句, 或到程序结束 list/l 列出源代码 next/n 阅读全文
posted @ 2016-09-18 22:45 cfans1993 阅读(152) 评论(0) 推荐(0) 编辑
摘要: 要点 shell查看命令:ipcs m 主要函数 例子 c int id=shmget(ftok("/shmmsg",0),length,oflag); char ptr=shmat(id,NULL,0); struct shmid_ds buff; shmctl(id,IPC_STAT,&buff 阅读全文
posted @ 2016-09-03 09:27 cfans1993 阅读(123) 评论(0) 推荐(0) 编辑
摘要: 要点 与mmap配合使用 open与shm_open的区别,open打开磁盘上的普通文件,shm_open创建和打开的文件在/dev/shm文件夹下,该文件夹对应的是内存 gcc编译时加参数 lrt shm_open的第一个参数名字的形式: /name, 如"/myshm" 基本函数 shm_ope 阅读全文
posted @ 2016-09-03 09:26 cfans1993 阅读(171) 评论(0) 推荐(0) 编辑
摘要: 信号量对比 二值信号量:其值要么0要么1,比如互斥锁就是这种类型 计数信号量:其值为0或某个正整数,比如POSIX 信号量 计数信号量:一个或多个信号量构成一个集合,每个都是计数信号量,比如System V信号量 shell查看命令:ipcs s 基本函数 ftok函数:用于生成一个唯一的key_t 阅读全文
posted @ 2016-08-27 20:26 cfans1993 阅读(118) 评论(0) 推荐(0) 编辑
摘要: 作用 信号量的值为0或正整数,就像红灯与绿灯,用于指示当前是否可以接受任务. 信号量对进程和线程都适用. gcc编译时需加 lpthread 基本函数 信号量的相关函数与标准文件函数非常相似,可以理解文件的读写,只是读写对象不同而已 例子 c include "./unpipc.h" include 阅读全文
posted @ 2016-08-27 20:25 cfans1993 阅读(179) 评论(0) 推荐(0) 编辑
摘要: 作用 记录锁与读写锁很相似, 记录锁也分读和写两种操作, 但它们的作用对象分别是进程和线程. 多个进程对同一文件进行访问时,记录锁可以锁定文件的某一个区间,以读操作锁定时允许其它进程进行继续加读锁, 以写操作锁定时不允许其它进程添加读锁或写锁. 记录锁只对加锁的函数fcntl进行检测, 如果其它进程 阅读全文
posted @ 2016-08-23 19:19 cfans1993 阅读(171) 评论(0) 推荐(0) 编辑
摘要: 作用 互斥锁在任一时刻只允许有一个线程访问关键资源, 不管是读取或写操作. 读写锁将互斥锁的功能一分为二, 分成读与写两种操作, 当进行读取操作时允许多个线程同时访问, 当进行写操作时只允许一个一个线程访问 基本函数 例子 两个线程用读锁读取内容; 两个线程用写锁修改内容 阅读全文
posted @ 2016-08-22 20:48 cfans1993 阅读(125) 评论(0) 推荐(0) 编辑