免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1470 | 回复: 3
打印 上一主题 下一主题

在AIX6.1上,写的一个程序,帮忙看看子进程为什么没有读取输入就结束了呢? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-07-16 11:38 |只看该作者 |倒序浏览
本帖最后由 DIYBYPERL 于 2012-07-16 12:41 编辑
  1. #include <stdio.h>
  2. #include <unistd.h>
  3. #include <sys/types.h>
  4. #include <sys/wait.h>
  5. #include <signal.h>
  6. #include <errno.h>

  7. int main(){
  8.         setbuf(stdout,NULL);
  9.          
  10.         printf("main: %d %d %d\n", getpid(), getpgrp(),getsid(getpid()));
  11.          
  12.         pid_t pid = fork();
  13.         if(pid <0){
  14.         perror("fork");
  15.         return 1;
  16.         }

  17.         setpgid(pid,0);/*设置子进程的进程组*/
  18.         if(pid >0){
  19.                 sleep(5);
  20.                 printf("SETPGID:%d\n",setpgid(pid, getpgrp()));/*设置子进程的进程组*/
  21.                 if(kill(pid, SIGCONT) != 0)/*让子进程继续*/
  22.                 {
  23.                         printf("Kill failed.%d:%s\n",errno,strerror(errno));
  24.                 }
  25.                 else
  26.                 {
  27.                                 printf("Kill succeded.\n");
  28.                 }
  29.                 printf("Child Status:%d\n",waitpid(pid,NULL,0));
  30.                 printf("Parent exits\n");
  31.                 return 0;
  32.         }

  33. /*子进程*/
  34.         char buf[1024];
  35.         printf("child: %d %d %d\n", getpid(), getpgrp(),getsid(getpid()));
  36.         while(fgets(buf,1024, stdin)){
  37.                 fputs(buf, stdout);
  38.         }
  39.         printf("Child exits\n");
  40.         return 0;
  41. }
复制代码
输出如下:‘
yehb:/home/yehb/testc>cc -o a test.c
yehb:/home/yehb/testc>a
main: 11010254 11010254 8126498
child: 7208996 7208996 8126498
SETPGID:0
Kill succeded.
Child Status:7208996
Parent exits

论坛徽章:
17
2015年辞旧岁徽章
日期:2015-03-03 16:54:152017金鸡报晓
日期:2017-02-08 10:39:422017金鸡报晓
日期:2017-01-10 15:19:56JAVA
日期:2016-11-01 13:25:46C
日期:2016-10-25 16:01:4715-16赛季CBA联赛之八一
日期:2016-06-21 23:38:0815-16赛季CBA联赛之山东
日期:2016-05-12 12:49:54IT运维版块每日发帖之星
日期:2016-04-20 06:20:00IT运维版块每日发帖之星
日期:2016-03-22 06:20:00黄金圣斗士
日期:2015-11-24 10:43:13IT运维版块每日发帖之星
日期:2015-08-25 06:20:002015亚冠之德黑兰石油
日期:2015-08-22 22:55:54
2 [报告]
发表于 2012-07-16 12:34 |只看该作者
子进程读谁的数据?

论坛徽章:
0
3 [报告]
发表于 2012-07-16 12:40 |只看该作者
回复 2# ccjsj1


    标准输入

论坛徽章:
0
4 [报告]
发表于 2012-07-16 15:44 |只看该作者
.         
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP