您的位置:首页 > 运维架构 > Linux

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

2013-12-21 22:14 183 查看
《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