fork函数
来源:互联网 发布:sqlserver 2005下载 编辑:程序博客网 时间:2024/05/09 03:01
fork()系统调用是Unix下以自身进程创建子进程的系统调用,一次调用,两次返回,如果返回是0,则是子进程,如果返回值>0,则是父进程(返回值是子进程的pid)。
还有一个很重要的东西是,在fork()的调用处,整个父进程空间会原模原样地复制到子进程中,包括指令,变量值,程序调用栈,环境变量,缓冲区,等等。
//run in linux 程序会输出多少个'-'?int main(void){int i;for(i = 0; i < 2; i++){ fork(); printf("-");} return 0;}
答:如果你对fork()的机制比较熟悉的话,这个题并不难,输出应该是6个“-”,但是,实际上这个程序会很tricky地输出8个“-”。
printf(“-”);把“-”放到了缓存中,并没有真正的输出,在fork的时候,缓存被复制到了子进程空间,所以,就多了两个,就成了8个,而不是6个。
那么我们把上面的程序改成下面这样:
0 0
- fork与fork函数
- fork函数
- fork 函数
- fork() 函数
- fork函数
- fork函数
- fork函数
- fork函数
- fork函数
- fork()函数
- fork函数
- fork()函数
- fork函数
- fork() 函数
- fork函数
- fork函数
- fork()函数
- fork函数
- 139邮箱短信报警实现
- 第一个测试
- [编程练习] 卷积和实现demo——对阶跃函数进行一维高斯模糊
- 通过grub2和光盘ISO文件硬盘安装debian7.4.0系统
- PandaBoard Ffmpeg X264 移植
- fork函数
- JNI详细教程
- ffserver + hls + ts 循环缓冲区
- 杭电1316 hd
- JAVASE学习笔记第7天
- 百度面试 一面
- 命令行简介
- Qt Creator 增加支持c++11特性
- JAVASE学习笔记第8天