一天一篇(5)
最近找到了一个非常值得探究的代码。如下:#include"apue.h"static void f1(),f2();int main(){ f1(); f2(); write(STDOUT_FILENO,"hello/n",7); sleep(2); _exit(0);}static void f1(){ pid_t pid; if((pid=vfork())<0) err_sys("vfork error");}static void f...
一天一篇(4)
今天讲述僵尸进程.首先关于僵尸进程的介绍:僵尸进程就是某进程产生的子进程返回后,其父进程没有及时处理该进程的终止状态。根据PIDH和PPID可以看出进程的父子关系,但是考虑到父进程先终止,那么其子进程会如何呢?当然会由INIT进程收养,此时,对应的PPID将会变成1。关于里面的细节,操作过程如下:(摘自unix环境高级...
一天一篇(3)
linux下缓冲知识:linux下的缓冲主要分为3种,无缓冲,行缓冲和全缓冲。一般行缓冲主要出现在shell之类的交互窗口,而全缓冲出现在重定向之类的地方。如下:(摘自unix环境高级编程)#include"apue.h"int glob=6;char buf[]="a write to stdout\n";int main(){ int var; pid_t pid; var=88;...
一天一篇(2)
c语言中的栈分布。高地址:存储命令行参数和环境变量. 栈 堆 未初始化的数据:由exec初始化位0 初始化的数据 低地址:正文其中正文段和初始化的数据段是由exec从程序文件中读入。
一天一篇(1)
c语言中关于volatile,volatile的作用是让编译器不对其声明的变量进行优化.例如,cc a.c -o a,这个命令的话,不使用优化进行编译,cc a.c -O a,一旦经过优化后,为了加速,有些变量会被编译器优化成寄存器变量,为了更方便的访问。尽管volatile不是很用的到,但是它的作用不可忽视,尤其是在移植平台上,因为不同的平台上...