Unix环境编程学习笔记-----编程实例---- the normal exit2

原创 2015年11月21日 20:30:33

NORMAL 2:

         THESOURCE CODE:

 

#include<unistd.h>

#include<errno.h>

#include<sys/types.h>

#include<sys/wait.h>

#include<stdio.h>

#include<stdlib.h>

 

 

 

 

 

int main()

{

         intPpid_t,Spid_t,rpid_t;

         inttmpstatus;

        

         Spid_t=fork();

        

         if(Spid_t<0)

         {

                   perror("forkerror");

                   _exit(-1);

                  

         }elseif(Spid_t==0)

                            {

                                     //子进程要做的事。

                                     printf("subprocess is going to over!\n");

                                     _exit(2);//wheni change the doc what will happen ???? example : _exit(2)  ???

                                    

                            }

                            else

                            {

                                     //父进程要做的事。

                                     //父进程获取子进程的结束状态,并打印出来

                                    

                                     //我先使用waitpid

                                    

                                     rpid_t=waitpid(Spid_t,&tmpstatus,NULL);

                                    

                                    

                                     //如果正常推出则打印出进程终止装填的编号  WIFEXITED(status)

                                    

                                     if(WIFEXITED(tmpstatus))

                                       {

                                                printf("the status's value is :%d\n",WEXITSTATUS(tmpstatus));

                                                

                                       }

                                       else if(WSTOPSIG(tmpstatus))  //判断子进程是不是由信号杀死,如果是打印该信号值。

                                                        printf("thesignal value is :%d \n",WTERMSIG(tmpstatus));

                                    

                                     _exit(2);

                                      

                                      

                            }

         return0;

}

 

此时,我们传给_exit的值是2

  “_exit(2);//wheni change the doc what will happen ???? example :”

我们看运行结果:

  

相关文章推荐

《UNIX环境高级编程》学习笔记--第三章习题2参考答案

题目咋看上去不好写,其实只要理解了dup函数和dup2函数的功能以及他们参数的限制,可以很快想到使用dup函数实现dup2函数。 先来说下dup函数,他是复制一个文件描述符,而复制的文件描述符的值为当...
  • ahfytao
  • ahfytao
  • 2015年09月03日 23:59
  • 371

UNIX环境高级编程学习笔记(四)不调用fcntl函数实现dup2的功能

不使用fcntl来实现dup2的功能

UNIX环境高级编程之学习笔记(四)-文件和目录(2)

1. 由于符号链接的存在,当使用以名字引用文件的函数时,就应当要了解函数是否处理符号链接了,也即该函数是否跟随符号链接到达它所链接的文件。相关函数总结如下: 1,当路径名...

UNIX环境高级编程学习笔记(九)进程控制

进程控制 fork exit exec wait

UNIX环境高级编程学习笔记(七)系统数据文件和信息

系统数据文件和信息

UNIX环境高级编程学习笔记(二)文件I/O常用函数

不带缓冲I/O

unix环境高级编程 学习笔记5 标准IO库

第五章 标准IO库 [仅作学习笔记,其中可能有误解] 1. 标准IO处理很多细节,如缓冲区分配,优化长度执行IO等,与系统调用的文件IO形成对比 2. 标准IO是围绕流进行的(stream) 3....

Unix环境高级编程学习笔记(七) 多线程

线程概述 线程(thread)技术早在60年代就被提出,但真正应用多线程到操作系统中去,是在80年代中期,solaris是这方面的佼佼者。传统的Unix也支持线程的概念,但是在一个进程(proces...

Unix环境高级编程学习笔记(三) 文件与目录

文件系统(file system) Linux文件系统中的文件是数据的集合,文件系统不仅包含着文件中的数据而且还有文件系统的结构,所有Linux 用户和程序看到的文件、目录、软连接及文件保护信息等都...

UNIX环境编程学习笔记—文件I/O之标准I/O流

1 标准 I/O 流 之前学习的都是不带缓冲的 I/O 操作函数,直接针对文件描述符的,每调用一次函数可能都会触发一次系统调用,单次调用可能比较快捷。但是,对于需要频繁进行 I/O 操作的程序,...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Unix环境编程学习笔记-----编程实例---- the normal exit2
举报原因:
原因补充:

(最多只允许输入30个字)