如何使用setjmp & longjmp,就不再细说了,请参考APUE 7.10.本文解释如下知识点:1、简单介绍X86_64的寄存器2、setjmp & longjmp是怎么实现的。3、为什么能从setjmp处多次返回。4、从setjmp返回时,那些数据是无效了,如何避免。本文没有画出函数调用栈桢...
分类:
其他好文 时间:
2015-12-24 00:33:30
阅读次数:
484
dup2的函数定义为:#include int dup2(int src_fd, int new_fd);自己实现dup2函数有几个关键点:1,检查给定的源fd是否有效,且都大于0,2,检查目标fd是否超出了系统设定的范围,而这个值在书上是没有着重指出的, 比如mac限制了要小于256,ubunt....
分类:
其他好文 时间:
2015-12-23 00:38:18
阅读次数:
361
APUE 308页 线程学习时候有一个链表struct job{ struct job* next; struct job* prev; pthread_t id;}struct queue(){ struct job * head; struct jo...
分类:
其他好文 时间:
2015-12-19 15:08:36
阅读次数:
169
16.1 Introduction Chapter15讲的是同一个machine之间不同进程的通信,这一章内容是不同machine之间通过network通信,切入点是socket。16.2 Socket Descriptors socket抽象上是一个communication endpoin...
分类:
Web程序 时间:
2015-12-19 00:09:57
阅读次数:
309
15.1 Introduction 这部分太多概念我不了解。只看懂了最后一段,进程间通信(IPC)内容被组织成了三个部分: (1)classical IPC : pipes, FIFOs, message queues, semaphores, and shared memory (2)net...
分类:
其他好文 时间:
2015-12-09 17:28:30
阅读次数:
353
Q8.1在图8-3程序中,如果用exit调用代替_exit调用,那么可能使标准输出关闭,是printff返回-1.修改该程序验证在你所使用的系统上是否会产生此种结果。如果并非如此,你怎么处理才能得到类似的结果呢?Q8.2回忆图7-6中典型的存储空间布局,由于对应于每个函数调用的栈帧通常存储..
分类:
其他好文 时间:
2015-12-03 15:51:46
阅读次数:
467
看到apue的第十章,说到alarm,pause可以实现sleep,可以让某些一直阻塞的函数超时,例如read,write。代码如下: 1 static void sig_alrm(int signo) 2 { 3 printf("I'm just print from sig_alrm...
分类:
系统相关 时间:
2015-12-02 18:26:55
阅读次数:
177
14.1 Introduction 这一章介绍的内容主要有nonblocking I/O, record locking, I/O multiplexing, asynchronous I/O, the readv and writev, memory-mapped I/O 这一章是后面章节的基.....
分类:
其他好文 时间:
2015-12-02 06:32:24
阅读次数:
275