![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
unix环境高级编程学习
见贤思齐,见不贤而内自省
这个作者很懒,什么都没留下…
展开
-
第一章笔记
《第一章》 1.main(int argc, char *argv[])当中的参数是该文件时输入的命令行,例如文件编译后为a.out argv[0] = ./a.out argv[1]~argv[argc-1]都是命令行输入的参数 2. int read(fd, buf, bufsize),从fd(文件描述符)对应的文件中读入数据到buf,大小为bufsize,返回int,为读入的文件大原创 2015-09-17 10:34:29 · 264 阅读 · 0 评论 -
wait和waitpid函数
当一个进程正常或者异常终止时,内核就向其父进程发送SIGCHLD信号。父进程可以选择忽略该信号(系统默认的方式),也可以对该信号进行回馈。 对于调用wait和waitpid的进程: (1)如果其所有子进程都还在运行,那么该进程阻塞 (2)如果一个子进程终止,则获取子进程的终止状态,并返回 (3)如果没有子进程,返回错误 #include pid_t wait(int *sta原创 2015-09-22 16:53:28 · 392 阅读 · 0 评论 -
笔记:进程间通信——消息传递(管道、FIFO、posix消息队列)
管道的创建, fd[0]:从管道读;fd[1]:向管道写 管道是单个进程创建的,它却很少在单个进程内使用。管道的典型用途是:两个进程(一个父进程,一个子进程)提高进程间通信的手段。 步骤: 首先,父进程创建一个管道,fork一个自进程(子进程中也有该管道,管道相当与文件,子进程可以共享父进程的?); 然后,父进程关闭管道的读出端,子进程关闭同一个管道的写入端。 这样父子进程间变形成了一个原创 2016-06-19 21:51:46 · 2501 阅读 · 0 评论 -
笔记:进程间通信——同步(互斥锁、读写锁、条件变量、信号量)以及Linux中的RCU
1.互斥锁 多个线程的IPC,需要同步,同步有隐式的和显示的: 比如unix提供的管道和FIFO,由内核负责同步,比如read发生在write之前,那么read就会被内核阻塞,这中同步是由内核负责的,用户不会感知。 但如果使用共享区作为生产者和消费者之间的IPC,那么程序员就需要负责同步,这种称为显示同步。 2.条件变量 互斥锁,当消费者等待生产者的数据时,需要不断的测试(即sp原创 2016-06-20 20:17:01 · 3426 阅读 · 0 评论