进程的基本属性

 

一:基本属性

1,进程号(PID):是系统维护的唯一标识一个进程的正整数,进程号无法在用户态修改;

获取函数:// come  from  /usr/include/unistd.h        extern  _pid_t getpid(void)返回PID

获取命令:ps aux

2,父进程号(PPID):任何进程(除了init进程)都是有另一个进程创建,该进程称为被创建进程的父进程,被创建进程称为子进程

获取函数:extern  _pid_t getppid(void)返回PPID

3,进程组号(PGID):进程组是一个或多个进程的集合,他们与统一作业相关联,可以接受来自同一终端的各种信息,每个进程组有唯一的进程组号,进程组号可以在用户层修改。

获取函数:extern  _pid_t getpgid(void)返回PGID

          pid_t   getpgrp(void);返回PGID

设置进程组ID函数:int setpgid(pid_t, pid_t pgid)

第一个参数为欲修改进程PGID的进程PID,第二个参数为新的进程组号PGID

如果这两个参数相等,则由pid指定的进程变成进程组组长;

如果pid0,则修改当前进程PGID

如果pgid0,则由pid指定的进程的PID将用于进程组号PGID

二:用户属性

1,进程真实用户号(RUID):创建该进程的用户UID为该进程的真实用户号(RUID)或实际用户号

获取函数:extern  _uid_t getuid(void)

2,进程有效用户号(EUID:EUID主要用于权限检测,多数情况下,RUID和EUID相同,如果可执行文件的setuid位有效,则该文件的创建者之外的用户运行该文件时,EUID和RUID不同,即有效用户号为该文件的拥有者。

获取函数:extern  _uid_t geteuid(void)

3,进程用户组号(GID):创建该文件的进程拥有的进程组号为该文件的进程用户组号(GID),

获取函数:extern  _uid_t getgid(void)

4,有效进程用户组号(EGID

一般情况下,EGIDGID相同,但是,当某可执行文件设置了setgid位,那么任何用户运行此程序时,其有效用户号EGID为该文件的拥有者所在的组。

获取函数:extern  _uid_t getegid(void)

以上函数都是系统调用函数,头文件是#include<unistd.h>

返回值为要获取的xx号,执行错误的话返回-1,错误号保存在errno中。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值