进程的标志(获取进程ID、父进程ID、进程所有者ID、用户ID、有效用户ID、组ID、有效组ID)

进程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);
	}
}

在本机上测试得到的结果为:

发布了91 篇原创文章 · 获赞 75 · 访问量 9万+

猜你喜欢

转载自blog.csdn.net/fengxianghui01/article/details/99698452