子进程会继承父进程用户id,用户组id,用户信息,文件描述符,数据段,堆栈,当前工作目录,创建文件权限,信号处理方式,进程组号,会话期号。

来源:互联网 发布:c语言ide 编辑:程序博客网 时间:2024/06/08 09:10
#include <stdio.h>#include <unistd.h>#include <stdlib.h>//子进程会继承父进程用户id,用户组id,用户信息,文件描述符,数据段,//堆栈,当前工作目录,创建文件权限,信号处理方式,进程组号,会话期号。int main(void){    printf("main process pid =%d\n",getpid());    int a =100;    pid_t pid;    pid = fork();   //创建子进程    if(pid<0)    {        perror("fork");        exit(1);  //结束进程    }    //子进程返回,子进程执行的代码块    if(pid == 0){        printf("子进程中a = %d,pid = %d  ppid = %d\n",a,getpid(),getppid());        exit(1);   //结束进程    }    //父进程中返回,父进程执行的代码块    if(pid > 0){        sleep(1); //如果延时1秒,则先显示子进程内容        a++;        printf("父进程中pid = %d,child pid = %d \n",getpid(),pid);//子进程的pid就是pid    }    printf("process pid =%d exit\n",getpid());}/*$ ./a.outmain process pid =24742子进程中a = 100,pid = 24743  ppid = 24742父进程中pid = 24742,child pid = 24743 process pid =24742 exit*/
阅读全文
1 0