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

Unix域套接字问题

    来源: 互联网  发布时间:2016-02-20

    本文导语:  下面的代码是我从Linux网络编程的Unix域套接字一章中看到的 注释是我对代码的理解,问号的部分是我不懂的地方,请大家执教 int unix_fd[2]; pid_t chld_pid; socketpair(AF_UNIX,SOCK_STREAM,0,unix_fd);  //创建一个unix域套接字对 chld_pid=fork();...


下面的代码是我从Linux网络编程的Unix域套接字一章中看到的
注释是我对代码的理解,问号的部分是我不懂的地方,请大家执教
int unix_fd[2];
pid_t chld_pid;
socketpair(AF_UNIX,SOCK_STREAM,0,unix_fd);  //创建一个unix域套接字对
chld_pid=fork();
switch(chld_pid)
{
 case -1:
    perror("fork child error");
    exit(1);
 case 0:                      //子进程的操作
    close(0);                 //关闭标准输入
    close(1);                 //关闭标准输出
    dup(unix_fd[1]);          //???有什么作用呢(我知道这是文件描述符的复制,问题是用在这里做什么?)
    dup(unix_fd[1]);          //???有什么作用呢
    close(unix_fd[0]);        //关闭从父进程中继承的unix套接对的一端fd[0]
    close(unix_fd[0]);        //???怎么又关闭一次呢
    echo_service();           //做一些服务
    exit(0);
 default:                     //父进程的操作
    close(unix_fd[1]);        //父进程的unix套接对的一端fd[1]
    break;
}

|
int   unix_fd[2]; 
pid_t   chld_pid; 
socketpair(AF_UNIX,SOCK_STREAM,0,unix_fd);//创建一个unix域套接字对 
chld_pid=fork(); 
switch(chld_pid) 

  case   -1: 
        perror("fork   child   error"); 
        exit(1); 
  case   0:                             //子进程的操作 
        close(0);                       //关闭标准输入 
        close(1);                       //关闭标准输出 
        dup(unix_fd[1]);                //???有什么作用呢(我知道这是文件描述符的复制,问题是用在这里做什么?) 
        dup(unix_fd[1]);                // --- dup 会复制到最小的描述符号,也就是前面的已经关闭的0,1
                                        //     这时标准输入/输出对应的都是套接字了。
        close(unix_fd[0]);              //关闭从父进程中继承的unix套接对的一端fd[0] 
        close(unix_fd[0]);              //???怎么又关闭一次呢  --- 好像应该是close(unix_fd[1]),已经dup了,
        echo_service();                 //做一些服务 
        exit(0); 
  default:                              //父进程的操作 
        close(unix_fd[1]);              //父进程的unix套接对的一端fd[1] 
        break; 
}

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












  • 相关文章推荐
  • UNIX特急!!!digital unix问题,请专家快来!!!
  • 小问题, Unix 如何建立一个文件 ,unix 文件有后缀名吗
  • 入门问题,我想向UNIX编程方向发展,单目前不会UNIX,我该如何做
  • unix下的非常的奇怪WC的问题,向unix高手请教 好急呀!!!!!!!!!!!!!!!
  • 菜鸟问题:现在要做unix下的c/c+编程的几个问题?
  • unix下jdk配置问题及发布问题.
  • UNIX的一个初级问题
  • [学习UNIX编程]初学UNIX编程,遇到一个小小的问题,烦劳大虾帮忙解惑,谢谢!
  • 关于UNIX文件I/O操作的问题,解决问题立即结贴
  • 新手,请教安装SCO Unix的问题
  • unix使用问题
  • 我初学 Unix 编程,在看《Unix环境高级编程》时有一个问题请指教。
  • 安装UNIX问题
  • Unix与windows的共存问题。
  • unix下发email问题
  • unix下编译问题
  • 一个关于安装SCO UNIX的问题
  • UNIX跟98安装问题
  • 关于unix系统安全问题!急!!!
  • linux和unix问题,望高手指教
  • java命名空间java.util.regex类pattern的类成员方法: unix_lines定义及介绍
  • 刚刚接触Unix系统和Unix编程。急需Unix下多线程程序设计和网络Socket程序设计方面的资料。
  • unix/Linux下c++ boost thread库读写锁介绍
  • 关于UNIX的历史 : 1973年,K.Thompson和D.M.ritchie,用C改写UNIX。那么,在此之前,UNIX是用什么写的?
  • php将标准字符串格式时间转换成unix时间戳_strtotime
  • 没有unix系统我如何学习unix
  • php将unix时间戳转换成字符串时间函数(date)
  • unix盘哪里有下载的??哪里有比较好的unix论坛??万分感谢!!!!!!!!!
  • unix/Linux下c/c++ pthread库读写锁函数介绍
  • 急!装完unix5.06,再装win2000。重启后不能进unix.
  • UNIX支持中文否,请推荐UNIX好书


  • 站内导航:


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

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

    浙ICP备11055608号-3