LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 730|回复: 1

等待解释这个含fork() kill(),pause()program

[复制链接]
发表于 2004-5-14 23:22:05 | 显示全部楼层 |阅读模式
  1. #include "unp.h"
  2. void
  3. str_cli(FILE *fp,int sockfd)
  4. {
  5.         pid_t                   pid;
  6.         char                    sendline[MAXLINE],recvline[MAXLINE];
  7.         if((pid=fork())==0) {   /* child : server -> stdout */
  8.                 while(Readline(sockfd,recvline,MAXLINE) >0)
  9.                         Fputs(recvline,stdout);
  10.                 kill(getpid(),SIGTERM);         /* in case parent still running*/
  11.                 exit(0);
  12.         }
  13.         /* parent: stdin -> server */
  14.         while(Fgets(sendline,MAXLINE,fp) != NULL )
  15.                 Writen(sockfd,sendline,strlen(sendline));
  16.         Shutdown(sockfd,SHUT_WR);       /* EOF on stdin,send FIN */
  17.         pause();
  18.         return;
  19. }
复制代码
kill() 和pause()的作用看不明白!!:thank
发表于 2004-5-15 00:27:38 | 显示全部楼层
if((pid=fork())==0) {   /* child : server -> stdout */
                while(Readline(sockfd,recvline,MAXLINE) >0)
                        Fputs(recvline,stdout);
                kill(getpid(),SIGTERM);         /* in case parent still running*/
                exit(0);
如果是父进程,得到的pid是子进程的
而子进程的到的pid是0
所以kill只是杀了子进程
子进程似乎是读数据然后显示屏幕
终止
而父进程则输入然后发送,停顿等待,循环
ps这是第几章节的unp里的代码?我好象没影响……第9章后的?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表