首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 操作系统 > UNIXLINUX >

小弟我对 fork() 意见相当大大

2012-09-09 
我对 fork() 意见相当大大贴出一段代码 如下:C/C++ codepid_t pidintlistenfd , connfdlistenfd socke

我对 fork() 意见相当大大
贴出一段代码 如下:

C/C++ code
    pid_t pid;    int  listenfd , connfd;        listenfd = socket(....);        bind(listenfd,....);        listen(listenfd,0);     for(; ; )  {         connfd = accept(listenfd, .....);   ##    if(( pid = fork()) == 0)  {          .....          close(listenfd);          ......// do something          close(connfd);          exit(0);          }         close(connfd);     }

  fork 会返回两次,在父进程中返回一次,在子进程中返回一次。
在 ## 这行代码中 if 语句作用是 拦截 子进程中fork的返回。 其实fork 这个创建进程的方法纯粹在浪费内存空间。实质上 if 大括号 {....} 里面的语句 还是在父进程中进行的。子进程根本没有任何作用,除了给 if 语句提供一个 条件表达式的判断 之外 没有其他作用。。  
各位是不是这样的啊??

[解决办法]
fork对你的意见也很大。。。

fork返回值是0的时候,就是子进程。你非要说是父进程。fork能对你没意见吗?呵呵
[解决办法]
fork调用一次返回两次,而返回0则是子进程
[解决办法]
楼主这样看不出来在子进程执行的,可以加下打印进清晰了
[解决办法]
对你的意见也很大。fork()是少有的有两个返回值的函数呢。。
[解决办法]
fork一次调用,两次返回。

返回0,子进程;

返回 > 0,父进程;

返回 < 0,出错。

子进程从fork的下一个语句开始执行。
[解决办法]
建议你看一下fork函数的用法

[解决办法]
fork表示躺着也中枪。
[解决办法]
明明啥都不懂,还对fork有意见,太浮躁了。
[解决办法]
fork表示很无辜

热点排行