进程的基本属性

一进程的基本属性

      进程的基本属性包括进程号(PID),父进程号(PPID),进程组号(PGID),真实用户号(UID),真实组号(GID),

以及进程所占的内存区域,文件描述符和进程环境等。

      通过ps -aux命令可查看当前进程基本属性

   1进程号(PID)  

        进程号是一个由系统维护的唯一标识进程的正整数,Linux系统中的第一个进程为init进程,他的PID

为1。

      可以通过调用getpid()函数获得当前进程的PID,函数定义在/user/include/unistd.h头文件中

   2父进程号(PPID)

     除init进程外,其它进程都是由另一个进程创建,该进程称为被创建进程的父进程,被创建的进程称

为子进程,父进程的PID即为子进程的PPID

      可以通过调用getppid()函数获得当前进程的父进程PID,函数定义在/usr/include/nistd.h文件中

 简单示例

   #include<stdio.h>

   #include<unistd.h>

   int main(int argc,char *argv[])

   {

        printf("The current process's parent is %d/n",getppid());

        return 0;

   }    由结果可以看出该进程的父进程为当前的shell程序

3进程组号(PGID)

     在Linux中,每个用户都拥有用户号(UID)和用户组号(GUID),进程和用户管理一样,也拥有进程PID

号和进程组号(PGID),当进程生成子进程时,系统会自动创建一个进程组。初始的父进程就为主进程,其

(PID)和进程号(PGID)一致

      可以通过调用getpgid()函数获得进程的进程组号

   简单示例

    #include<stdio.h>

    #include<unistd.h>

    int main(int argc,char *argv[])

     {

          int i;

          printf("/tpid/t ppid /t pgid/n");

          printf("parent/t%d/t%d/t%d/n",getpid(),getppid(),getpgid(0));

          for(i=0;i<2;i++)

               if(fork()==0)

                     printf("child/t%d/t%d/t%d/n",getpid(),getppid(),getpgid(0));

         return 0;

    }   

    由结果可以看出主进程创建的所有进程都拥有相同的进程组号。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值