进程ID:进程的标识。
父进程ID:进程的父进程。
进程所有者ID:进程是为程序服务的,而程序是为了用户服务的.系统为了找到进程的用户名,还为进程和
用户建立联系.这个用户称为进程的所有者。
用户ID:进程使用者
有效用户ID:由于进程要用到一些资源,而 Linux 对系统资源是进行保护的,为了获取一定资源进程还有一个有效用户 ID.这个 ID 和系统的资源使用有关涉及到进程的权限.
组ID:
有效组ID:
/**********************************************
* COPYRIGHT:
*
*
***********************************************/
#include <unistd.h>
#include <pwd.h>
#include <sys/types.h>
#include <stdio.h>
int main(int argc, char **argv)
{
pid_t my_pid;
pid_t parent_pid;
uid_t my_uid;
uid_t my_euid;
gid_t my_gid;
gid_t my_egid;
struct passwd *my_info;
my_pid = getpid();
parent_pid = getppid();
my_uid = getuid();
my_euid = geteuid();
my_gid = getgid();
my_egid = getegid();
my_info = getpwuid(my_uid);
printf("Process ID:%ld\n", my_pid);
printf("Parent ID:%ld\n", parent_pid);
printf("User ID:%ld\n", my_uid);
printf("Effective User ID:%ld\n", my_euid);
printf("Group ID:%ld\n", my_gid);
printf("Effective Group ID:%ld\n", my_egid);
if (my_info)
{
printf("My Login Name:%s\n" ,my_info->pw_name);
printf("My Password :%s\n" ,my_info->pw_passwd);
printf("My User ID :%ld\n",my_info->pw_uid);
printf("My Group ID :%ld\n",my_info->pw_gid);
printf("My Real Name:%s\n" ,my_info->pw_gecos);
printf("My Home Dir :%s\n", my_info->pw_dir);
printf("My Work Shell:%s\n", my_info->pw_shell);
}
}
在本机上测试得到的结果为: