自自然卷 2016-01-18 01:44 采纳率: 35.7%
浏览 1664

网络编程fork()相关问题

    下面这段程序为什么fork两个进程分别执行close(ss)和close(sc)
    pid = fork();                       /*分叉进程*/
    if( pid == 0 ){                     /*子进程中*/
        process_conn_server(sc);        /*处理连接*/
        close(ss);                      /*在子进程中关闭服务器的侦听*/
    }else{
        close(sc);                      /*在父进程中关闭客户端的连接*/
    }
  • 写回答

4条回答 默认 最新

  • 91program 博客专家认证 2016-01-18 03:53
    关注

    这个你需要了解 fork 的功能:
    fork调用的一个奇妙之处就是它仅仅被调用一次,却能够返回两次,它可能有三种不同的返回值:
    1)在父进程中,fork返回新创建子进程的进程ID;
    2)在子进程中,fork返回0;
    3)如果出现错误,fork返回一个负值;

    返回零,说明是在子进程中,所以在子进程中关闭服务器的侦听;

    评论

报告相同问题?

悬赏问题

  • ¥20 求快手直播间榜单匿名采集ID用户名简单能学会的
  • ¥15 DS18B20内部ADC模数转换器
  • ¥15 做个有关计算的小程序
  • ¥15 MPI读取tif文件无法正常给各进程分配路径
  • ¥15 如何用MATLAB实现以下三个公式(有相互嵌套)
  • ¥30 关于#算法#的问题:运用EViews第九版本进行一系列计量经济学的时间数列数据回归分析预测问题 求各位帮我解答一下
  • ¥15 setInterval 页面闪烁,怎么解决
  • ¥15 如何让企业微信机器人实现消息汇总整合
  • ¥50 关于#ui#的问题:做yolov8的ui界面出现的问题
  • ¥15 如何用Python爬取各高校教师公开的教育和工作经历