当前位置:  技术问答>linux和unix

我对 fork() 意见相当大大

    来源: 互联网  发布时间:2017-03-09

    本文导语:  贴出一段代码 如下:     pid_t pid;     int  listenfd , connfd;          listenfd = socket(....);          bind(listenfd,....);          listen(listenfd,0);      for(; ; )  {          connfd = accept(listenfd, ........

贴出一段代码 如下:

    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,父进程;

返回 

    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 奇怪:程序一fork子进程时就停住了,似乎根本不能fork子进程啊?
  • unix中的fork2与fork有设么区别?
  • 还是有关fork的问题,fork在一个函数中调用,我被搞胡涂了
  • 程序在fork前申请了内存若干,在fork后子进程是否需要释放父进程之前申请的内存
  • fork()函数入门级问题:fork()与进程数
  • 一个fork的问题
  • 新手的问题关于fork?
  • 如何理解fork函数返回2次啊?
  • 急于明白Fork的用法.请提供中文解释.谢谢.
  • 关于fork的不解
  • 弱弱的问:fork和exec的区别是什么?
  • 关于fork的讨论
  • 数据库 iis7站长之家
  • fork之后的输出
  • fork() 父子进程执行顺序问题
  • 关于fork创建进程的一个问题
  • exit和fork是什么关系?他们是怎么配合使用的?
  • fork函数,在线等待,马上结贴。谢谢!!!!!!!!!!!!
  • fork的问题
  • 请教 linux的fork从什么版本开始支持COW?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3