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

来源:互联网 发布:自动化编程语言 编辑:程序博客网 时间:2024/05/17 22:52

《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








0 0
原创粉丝点击