《Linux操作系统下C语言编程入门》 – linux 进程

《Linux操作系统下C语言编程入门》 – linux 进程转载自:《Linux操作系统下C语言编程入门》头文件#include获取进程id:pid_tgetpid();获取进程的父亲id:pid_tgetppid();获取进程对应的应用程序对用的操作系统用户的id(进程所有者的id):uid_tgetuid();进程有效用户id uid_tgeteuid();用户所在分组的id:gid_t

《Linux操作系统下C语言编程入门》加上自己的一些重点。

头文件 #include <unistd>

获取进程id:pid_t getpid();

获取进程的父亲id:pid_t getppid();

获取进程对应的应用程序对用的操作系统用户的id(进程所有者的id):uid_t getuid();

进程有效用户id  uid_t geteuid();

用户所在分组的id: gid_t getgid();

用户所在组的有效组id:gid_t getegid();

例子:

#include<unistd.h>
#include<pwd.h>
#include<sys/types.h>
#include<stdio.h>
int main(int argc , char** argv)
{
	pid_t my_pid , parent_pid;
	uid_t my_uid , my_euid;
	gid_t my_gid , my_egid;
	struct passwd* my_info;
	
	my_pid		= getpid();
	parent_pid	= getppid();
	my_uid		= getuid();
	my_euid		= geteuid();
	my_gid		= getgid();
	my_info		= getpwuid(my_uid);	
	
	printf("Process ID : %d\n",my_pid);	
	printf("Parent ID : %d\n",parent_pid);	
	printf("User ID : %d\n",my_uid);	
	printf("Effective User ID : %d\n",my_euid);	
	printf("Group ID :%d\n",my_gid);	
	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 : %d\n",my_info->pw_uid);
		printf("My Group ID : %d\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);
	}
	return 0;
}

进程创建:

#include<unistd.h>

函数:pid_t fork();

该函数创建跟当前线程继续向下走的内容一模一样的进程内容,几乎等价于复制当前线程接下来需要执行的内容到新的子线程

当内存不足或者用户最大进程数量满了后,返回值是-1;当返回值是0,表示当前是当前线程;否则返回不是0而是一个新线程的id。

这有一篇特别详细的博客,讲述的非常的棒,赞:http://blog.csdn.net/jason314/article/details/5640969

今天的文章《Linux操作系统下C语言编程入门》 – linux 进程分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/26776.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注