摘要: 网络IPC:套接字 strcut sockaddr 很多网络编程函数诞生早于IPv4协议,那时候都使用的是sockaddr结构体,为了向前兼容,现在sockaddr退化成了(void *)的作用,传递一个地址给函数,至于这个函数是sockaddr_in还是sockaddr_in6,由地址族确定,然后 阅读全文
posted @ 2019-01-13 21:58 苏格拉底的落泪 阅读(367) 评论(0) 推荐(0) 编辑
摘要: 函数select 函数原型: int select(int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval *timeout); void FD_CLR(int fd, fd_set *set); 阅读全文
posted @ 2019-01-13 21:17 苏格拉底的落泪 阅读(169) 评论(0) 推荐(0) 编辑
摘要: 函数epoll 1. 函数epoll_creat: 该函数生成一个epoll专用的文件描述符: int epoll_creae(int size); 参数: size:epoll上能关注的最大描述符数 2. epoll_ctl:用于控制某个epoll文件描述符事件,可以注册、修改、删除: int e 阅读全文
posted @ 2019-01-13 19:55 苏格拉底的落泪 阅读(403) 评论(0) 推荐(0) 编辑
摘要: 使用lambda创建线程 1. 例子: #include <iostream> #include <thread> #include <chrono> #include <vector> #include <mutex> #include <memory> class Task { public: 阅读全文
posted @ 2019-01-13 19:51 苏格拉底的落泪 阅读(613) 评论(0) 推荐(0) 编辑
摘要: 函数wait 一个进程在终止时会关闭所有文件描述符,释放在用户空间释放的内存,但它的PCB还保留着,内核在其中保存一些信息:如果是正常终止时则保存着退出状态,如果是异常终止则保存着导致该进程终止的信号是哪个,这个进程的父进程可以调用wait或waitpid获取这些信息,然后彻底清除这个进程,我们知道 阅读全文
posted @ 2019-01-13 19:08 苏格拉底的落泪 阅读(363) 评论(0) 推荐(0) 编辑
摘要: 会话 会话:是一个或多个进程组的集合。 创建一个会话需要注意以下6点注意事项: 调用进程不能是进程组组长,该进程变成新会话首进程(session header) 该进程成为一个新进程组的组长进程。 需要root权限(ubuntu不需要) 新会话丢弃原有的终端控制,该会话没有控制终端 该调用进程是组长 阅读全文
posted @ 2019-01-13 18:39 苏格拉底的落泪 阅读(168) 评论(0) 推荐(0) 编辑
摘要: 进程组 (1)进程组,也称之为作业,BSD与1980年前后向UNIX中增加的一个新特性,代表一个或多个进程的集合。每个进程都属于一个进程组,在waitpid函数和kill函数的参数中都曾经使用到,操作系统设计的进程组的概念,是为了简化对多个进程的管理。 当父进程创建子进程的时候,默认子进程与父进程属 阅读全文
posted @ 2019-01-13 18:17 苏格拉底的落泪 阅读(347) 评论(0) 推荐(0) 编辑
摘要: signal函数 1. signal函数原型: #include <signal.h> void (*signal(int signo, void (*func)(int)))(int); 函数功能:为指定的信号安装一个新的信号处理函数。 图解; #include <stdio.h> #includ 阅读全文
posted @ 2019-01-13 18:08 苏格拉底的落泪 阅读(260) 评论(0) 推荐(0) 编辑