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

APUE中关于controlling terminal的一点疑问

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

    本文导语:  static void sig_hup(int signo) {         printf("SIGHUP received, pid = %dn", getpid()); } static void pr_ids(char *name) {         printf("%s: pid = %d, ppid = %d, pgrp = %d, tpgrp = %dn",             name, getpid(), getppid(), getpgrp(), tcge...

static void
sig_hup(int signo)
{
        printf("SIGHUP received, pid = %dn", getpid());
}

static void
pr_ids(char *name)
{
        printf("%s: pid = %d, ppid = %d, pgrp = %d, tpgrp = %dn",
            name, getpid(), getppid(), getpgrp(), tcgetpgrp(STDIN_FILENO));
        fflush(stdout);
}
int
main(void)
{
        char    c;
        pid_t   pid;
        pr_ids("parent");
        if ((pid = fork())  0) {    
                sleep(5);              
                exit(0);                
        }
        else {                  
                pr_ids("child");
                signal(SIGHUP, sig_hup);        
              kill(getpid(), SIGTSTP);        
                pr_ids("child");        //这里调用pr_ids时,父进程已经关闭,但是调用printf却可以向原来的controlling terminal写
                if (read(STDIN_FILENO, &c, 1) != 1)        //但是这里向原来的terminal读却有问题
                        printf("read error from controlling TTY, errno = %dn",
                            errno);          //这里也可以向原来的controlling terminal写
                exit(0);
        }
}


本人linux菜鸟,各位大神,求指点。

|


父进程比子进程先结束,子进程成为被init领养成为孤儿进程,此时子进程已经是在后台进程组了

后台进程组的进程本来就是可以写终端而还能读取终端的,当然,可以都过stty tostop命令阻止后台进程组往终端写.

你可以先使用stty tostop再执行你的程序,那子进程stop返回后就不能输出到终端了

    
 
 

您可能感兴趣的文章:

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












  • 相关文章推荐
  • 下载了APUE源码,怎么打不开啊?
  • 文件名为“apue.tar.Z”的文件在UNIX下怎么打开?大家帮帮忙
  • APUE第2版的例2-1的疑问
  • apue书上的概念,读过这本书的请进
  • 刚学完apue,大家给个建议
  • 求apue的课后答案~~~~~~~~~~~~~
  • APUE 看完之后,拿什么练练手?
  • apue.h的问题
  • APUE+macro
  • apue中的一个问题
  • APUE相关章节不容易理解。
  • 关于apue2 中一个例子的提问
  • apue书的的信号函数,看不懂
  • APUE中 system函数的实现中的问题
  • 哪位兄弟在看apue?相互交流一下
  • APUE中“信号”一节的问题
  • apue 上的 Figure3.10运行后,输出怎么是空白
  • apue学习问题 第八章 进程控制 相关
  • apue page113
  • 关于unix环境高级编程的apue的问题


  • 站内导航:


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

    ©2012-2021,