2013年7月15日

UNIX环境高级编程——线程

摘要: 线程包含了表示进程内执行环境必需的信息,其中包括进程中标示线程的线程ID、一组寄存器值、栈、调度优先级和策略、信号屏蔽字、errno变量以及线程私有数据。 进程的所有信息对该进程的所有线程都是共享的,包括可执行的程序文本、程序的全局内存和堆内存、栈以及文件描述符。线程标识: ... 阅读全文

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

UNIX环境高级编程——IPC总结

摘要: IPC主要包括:管道,消息队列,信号量,共享内存, 套接字(SOCKET)。一、IPC对象的持久性 每种IPC机制都会借助一种数据结构,这种数据结构的实例称为该IPC机制的对象(相应的,用于同步互斥的数据结构的实体也可以称为该机制的对象)。理清IPC对象的持久性,有助于理解相应的... 阅读全文

posted @ 2013-07-15 17:16 疯子123 阅读(202) 评论(0) 推荐(0) 编辑

UNIX环境高级编程——select和epoll的区别

摘要: select和epoll都用于监听套接口描述字上是否有事件发生,实现I/O复用select(轮询)#include #include int select (int maxfdpl, fd_set* readset, fd_set* writeset, fd_set* exceptset, con... 阅读全文

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

UNIX环境高级编程——epoll函数使用详解

摘要: epoll - I/O event notification facility 在linux的网络编程中,很长的时间都在使用select来做事件触发。在linux新的内核中,有了一种替换它的机制,就是epoll。 相比于select,epoll最大的好处在于它不会随着监听... 阅读全文

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

UNIX环境高级编程——select、poll和epoll

摘要: 一、select select目前几乎在所有的平台上支持,其良好跨平台支持也是它的一个优点,事实上从现在看来,这也是它所剩不多的优点之一。 select的一个缺点在于单个进程能够监视的文件描述符的数量存在最大限制,在Linux上一般为1024,不过可以通过修改宏定义甚至重新编译内... 阅读全文

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

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) 编辑

导航