上一页 1 ··· 74 75 76 77 78 79 80 81 82 ··· 121 下一页

2013年7月15日

UNIX环境高级编程——I/O多路转接(select、pselect和poll)

摘要: I/O多路转接:先构造一张有关描述符的列表,然后调用一个函数,直到这些描述符中的一个已准备好进行I/O时,该函数才返回。在返回时,它告诉进程哪些描述符已准备好可以进行I/O。 poll、pselect和select这三个函数使我们能够执行I/O多路转接。一、select函数在所有... 阅读全文

posted @ 2013-07-15 11:39 疯子123 阅读(184) 评论(0) 推荐(0) 编辑

UNIX环境高级编程——非阻塞设置

摘要: 非阻塞I/O使我们可以调用open、read和write这样的I/O操作,并使这些操作不会永远阻塞。如果这种操作不能完成,则调用立即出错返回,表示该操作如继续执行将阻塞。对于一个给定的描述符有两种方法对其指定非阻塞:(1)如果调用open获得描述符,则可指定O_NONBLOCK标志。(2... 阅读全文

posted @ 2013-07-15 10:56 疯子123 阅读(99) 评论(0) 推荐(0) 编辑

2013年7月10日

UNIX环境高级编程——记录上锁(fcntl函数)以及死锁检测

摘要: 一、记录锁 record locking 功能:当一个进程正在读或修改文件的某个部分时,它可以阻止其它进程修改同一文件区。 字节范围锁 byte-range locking 二、历史 flock函数,可以锁整个文件,不能锁文件中的一部分。 fcntl函数,增加了记录锁的功能。 lockf函数,在f... 阅读全文

posted @ 2013-07-10 11:37 疯子123 阅读(356) 评论(0) 推荐(0) 编辑

2013年7月9日

UNIX环境高级编程——存储映射I/O(mmap函数)

摘要: 共享内存可以说是最有用的进程间通信方式,也是最快的IPC形式,因为进程可以直接读写内存,而不需要任何数据的拷贝。对于像管道和消息队列等通信方式,则需要在内核和用户空间进行四次的数据拷贝,而共享内存则只拷贝两次数据: 一次从输入文件到共享内存区,另一次从共享内存区到输出文件。实际上,进程之... 阅读全文

posted @ 2013-07-09 10:02 疯子123 阅读(173) 评论(0) 推荐(0) 编辑

2013年7月8日

UNIX环境高级编程——System V 共享内存区

摘要: 共享内存区域是被多个进程共享的一部分物理内存。如果多个进程都把该内存区域映射到自己的虚拟地址空间,则这些进程就都可以直接访问该共享内存区域,从而可以通过该区域进行通信。共享内存是进程间共享数据的一种最快的方法,一个进程向共享内存区域写入了数据,共享这个内存区域的所有进程就可以立刻看到其... 阅读全文

posted @ 2013-07-08 14:19 疯子123 阅读(179) 评论(0) 推荐(0) 编辑

UNIX环境高级编程——system V消息队列

摘要: unix早期通信机制中的信号能够传送的信息量有限,管道则只能传送无格式字节流,这远远是不够的。 消息队列(也叫报文队列)客服了这些缺点: 消息队列就是一个消息的链表。 可以把消息看作一个记录,具有特定的格式。 进程可以按照一定的规则向消息队列中添加新消息;... 阅读全文

posted @ 2013-07-08 10:47 疯子123 阅读(216) 评论(0) 推荐(0) 编辑

2013年7月7日

UNIX环境高级编程——进程间通讯方法整理

摘要: 一.无名管道pipe#include int pipe(int fd [2])二.fifo#include int mkfifo(const char *path, mode_t mode);三.信号#include void (*signal(int sig, void (*func)(int)... 阅读全文

posted @ 2013-07-07 18:45 疯子123 阅读(211) 评论(0) 推荐(0) 编辑

UNIX环境高级编程——system V信号量

摘要: 1. 信号量(semaphore)主要用于保护临界资源。进程可以根据它判断是否能访问某些共享资源。信号量除了用于访问控制外,还可用于进程同步,也就是进程间通信。2. 信号量分类:a. 二值信号量: 信号量的值只能取0或1,类似于互斥锁mutex,但两者又不同:mutex 与 二值信号量的区别:信号... 阅读全文

posted @ 2013-07-07 18:20 疯子123 阅读(279) 评论(0) 推荐(0) 编辑

UNIX环境高级编程——创建与打开IPC通道

摘要: 创建或打开一个IPC对象的三个getXXX函数的第一个参数key是类型为key_t的IPC键,返回值identifier是一个整数标识符。该标识符不同于ftok函数的id参数。对于key值,应用程序有两种选择。(1)调用ftok,给它传递pathname和id。(2)指定key为IPC_PRIVA... 阅读全文

posted @ 2013-07-07 18:11 疯子123 阅读(189) 评论(0) 推荐(0) 编辑

UNIX环境高级编程——Linux系统调用列表

摘要: 以下是Linux系统调用的一个列表,包含了大部分常用系统调用和由系统调用派生出的的函数。这可能是你在互联网上所能看到的唯一一篇中文注释的Linux系统调用列表,即使是简单的字母序英文列表,能做到这么完全也是很罕见的。按照惯例,这个列表以man pages第2节,即系统调用节为蓝本。按照笔者的理解,... 阅读全文

posted @ 2013-07-07 18:01 疯子123 阅读(153) 评论(0) 推荐(0) 编辑

上一页 1 ··· 74 75 76 77 78 79 80 81 82 ··· 121 下一页

导航