发布时间:2013-06-03 13:24:29
下面的测试程序我们都省略错误检查如同进程可以调用atexit函数安排在他退出时需要调用的函数一样,进程也可以安排在他退出时调用的函数。这些清理函数记录在栈中,所以他们执行的顺序和注册的顺序是相反的。#inclduevoid pthread_cleanup_push(void (*rtn)(void *),void *arg);void pthread_clean.........【阅读全文】
发布时间:2013-05-31 16:45:15
#includeint sigaction(int sigon,const struct sigaction &restrict act, struct sigaction &restrict oact); 成功返回0,出错返回-1此函数使用下列结构:struct .........【阅读全文】
发布时间:2013-05-28 22:29:25
为了节省篇幅所有测试都忽略错误检查SIGABRT: 调用abort函数时产生此信号。默认终止进程,可捕捉 6 void sig_abort(int signo){ 7 printf("get signal:%s\n",strsignal(signo)); 8 } 9 10 int main(void){ 11 .........【阅读全文】
发布时间:2013-05-23 15:00:36
先要说明一下:我们这里要讨论的重点是 非局部跳转函数 但是后半部分的分析和信号有很大的关系,篇幅有限,我们对后面关于信号方面的细节有些是忽略的。而且针对的是 单线程进程中的信号。好了步入正题,先来看一个 假设的情景我们假设 在main函数中调用f1(),f1()中调用f2(); void f2(){ ... .........【阅读全文】
发布时间:2013-05-19 20:03:40
标准I/O库对每个I/O流自动进行缓冲,从而避免了应用程序为了减少read和write系统调用而设置合适的缓冲区长度。标准I/O提供了三种类型的缓冲我们下来看一个《unix环境高级编程》上的一个输出标准输入,标准输出,标准出错和普通文件的缓冲信息的例子 4 void pr_stdio(char *,FILE *); 5 6 in.........【阅读全文】