什么是进程
每一个进程在系统中都有唯一的ID标示它,此id为进程标示符
进程标示符的类型 pit_t,其实是一个无符号整形一个进程标示符对应唯一的一个进程,多个进程标示符可以对应同一个程序
进程和程序的区别:
程序:可运行的二进制代码文件,这种文件加载到内存中运行就得到了一个进程
进程:同一个程序文件可以加载多次成为不同的进程
进程标示符和进程之间是一一对应关系,和程序文件是多对一关系!
进程中重要的id值
(1)进程ID(2)父进程ID(3)有效用户ID
(4)有效组ID(5)实际用户ID(6)实际组ID
其中进程id和父进程id的标示符不能更改
打印当前进程ID
#include<stdio.h>
#include<unistd.h>
int main()
{
pid_t pid,ppid,uid,euid,gid,egid;
pid = getpid();
pid = getppid();
pid = getuid();
pid = geteuid();
pid = getgid();
pid = getegid();
printf("id of current process: %u\n",pid);
printf("parent id of current process:%u\n",ppid);
printf("user id of current process:%u\n",uid);
printf("effective user id of current process::%u\n",euid);
printf("group id of current process:%u\n",gid);
printf("effective group id of current process:%u\n",egid);
}
linux中用fork()函数创建一个新进程
linux系统中的任何一个进程都是由其他进程创建的,创建新进程的进程,即调用fork()函数的进程就是父进程,新创建的进程就是子进程
fork()函数的返回至是一个进程id,其返回值有3种情况
(1)对于父进程,fork(