您的位置:首页 > 运维架构 > Linux

Linux 中的fork()函数

2015-04-19 10:12 99 查看
fork()函数总是“调用一次,返回两次”,在父进程中调用一次,在父进程和子进程中各返回一次。fork在子进程中返回值是0,在父进程中返回值是子进程的id。
子进程在创建时会复制父进程的当前状态,包含变量值和缓存中的值。
程序运行的结果基本上是父子进程交替打印,但是也不一定,取决于系统中其他进程的运行情况和内核的调度算法。

fork调用的奇妙之处就是它仅仅被调用一次,但是却能够返回两次,它可能有三种不同的返回值:

在父进程中,fork返回新创建的子进程的进程id
在子进程中,fork返回0
如果出现错误,fork返回一个负值

#include <stdio.h>  
int main(int argc, char* argv[])  
{  
	   fork();  
	   fork() && fork() || fork();  
	   fork();  
	   printf("+/n");  
}


结果是20次



参考链接:

http://zhidao.baidu.com/link?url=lzSI-FkKMF7tw8gIryekEkr1hKRXZQSiyoRAxiH2eut0PhzBbgTdyCW50lBdesfHMN5GsqZJ_5ZR7-3hst3RXK

http://www.cnblogs.com/bastard/archive/2012/08/31/2664896.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: