- 博客(7)
- 资源 (2)
- 问答 (1)
- 收藏
- 关注
原创 第十五章(二) FIFO、消息队列及信号量
FIFO FIFO也称为命名管道,没有了未命名管道只能在两个相关进进程之间才能运行的局限性; 通过FIFO, 两个不相关的进程也能交换数据。 FIFO是一种文件类型,通过stat结构的 st_mode 成员的编码可以知道文件是否是FIFO类型。 可以用 S_ISFIFO宏对此进行测试。 创建FIFO类似于 创建文件,路径名是事实存在的。 函
2015-02-14 21:29:20 950
原创 第十五章(一) 进程间通信 之 管道
第十五章 进程间通信这里先添加之前学习对管道的认识:管道编程: 要实现 who | sort 需要两个技巧: 如何创建管道 + 如何将标准输入和输出通过管道连接起来 系统调用pipe也使用最低可用文件描述符 pipedemo1.c展示了在一个进程中如何使用pipe(玩
2015-02-14 17:50:58 821
转载 异步I/O
不同的I/O模型: ㈠、同步I/O阻塞 最常用的一个模型是同步阻塞 I/O模型。在这个模型中,用户空间的应用程序执行一个系统调用,这会导致应用程序阻塞。这意味着应用程序会一直阻塞,直到系统调用完成为止(数据传输完成或发生错误)。调用应用程序处于一种不再消费CPU 而只是简单等待响应的状态,因此从处理的角度来看,这是非常有效的。 配图 2 给出了传
2015-02-11 20:44:16 422
原创 第十四章(三) readv、存储映射
以下两个函数用于在一次函数调用中读、写多个非连续缓冲区函数 ssize_t readv(int fd, struct iovec *iov, int iovcnt) iovcnt用于指定iov数组中元素的个数 按从0到iovcnt-1的顺序,总是先填满一个缓冲区,然后再填写下一个。 返回读到的总字节数。函数 ssize_t writev(i
2015-02-11 20:40:37 461
原创 第十四章(二) 异步I/O
I/O多路转接 当我们从一个描述符读取数据从而写到另外一个描述符时,可以使用阻塞I/O while((n=read(STDIN_FILENO,buf,BUFSIZ))>0) if(write(STDOUT_FILENO,buf,n)!=n) perror("write"); 但是如果我们希
2015-02-10 15:13:40 571
原创 第十四章 非阻塞I/O 和 记录锁
本章包括:(非阻塞I/O、 记录锁、 I/O多路转接(select和poll函数)、 异步I/O、 readv和writev函数和存储映射I/O(mmap))非阻塞I/O 之前章节中将系统调用分为两类 1、低速系统调用 2、其他 低速系统调用是可能会使进程永远阻塞的一类系统调用。 我们可以通过以下两种方法使得这些
2015-02-04 20:38:13 462
原创 第十三章 守护进程
在看第十二章之前,这里要先提一个十一章遗留下来的一个问题. 在使用条件变量的时候,下面哪个步骤是正确的? 1、对互斥量加锁 2、改变互斥量保护的条件 3、给等待条件的线程发信号 4、对互斥量解锁 或者 1、对互斥量加锁 2、改变互斥量保护的条件 3、对互
2015-02-02 14:04:47 536
linux下编程 ,关于信号sigaction中的sa_flags ,一些改变却不起作用
2014-11-26
TA创建的收藏夹 TA关注的收藏夹
TA关注的人