Linux 进程管理与开发0

本文介绍了进程的基本属性,包括进程号(PID)、父进程号(PPID)和进程组号(PGID),并提供了获取这些属性的函数说明及示例程序。通过示例程序展示了如何使用 getpid、getppid 和 getpgid 函数来获取进程的相关信息。

1.进程的基本属性

        和进程基本相关的属性有:进程号(PID)、父进程号(PPID)、进程组号(PGID)系统的第一个进程是init进程,他的pid=1

2.获取进程属性的函数

        extern _pid_t getpid(void);获取本身进程的PID函数 extern _pid_t getppid(void);获取父进程的PID函数 extern _pid_t getpgid(_pid_t _pid);获取本进程的进程组的PID函数,此参数为0则为本进程的进程组的PID如果为其他的值,则返回值就是其他进程组的PID extern _pid_t getpgrp(void);获取当前进程的进程组号

3、简单程序测试:

code:

#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;
}

gcc –o getpid main.c

./getpid

2011-07-29-10-59 

在for循环里面开辟了3个进程循环了2次其中2999为整个进程的进程组的pid 2921为父进程就是上一级进程的pid

查询ps –aux 为bash也就是shell本身的进程

2011-07-29-11-59

4.加入一个现有的组或者是一个新的进程组成的系统调用函数setpgid()

   int setpgid(pid_t pid ,pid__t pgid);

    其中第一个参数是为你想修改进程PGID的进程PID,第二个为新的进程组号,如果这两个参数是相等的话。则由Pid指定的进程为进程组长;如果是pid为0,则修改当前进程的pgid,如果是pgid=0,则有指定的进程pid将用于进程组pgid

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值