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

43 篇文章 0 订阅

《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








  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值