《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