1、进程标识符pid
类型pid_t
命令ps
进程号是顺次向下使用
getpid();
getppid();
2、进程的产生
fork();
注意理解关键字:duplicating,意味着拷贝,克隆,一模一样等含义
fork后父子进程的区别:
1、fork的返回值不一样
2、pid不同
3、ppid也不同
init进程:1号,是所有进程的祖先进程,孤儿进程归他管
调度器的调度策略来决定哪个进程先运行
vfork();//已废弃
3、进程的消亡及释放资源
wait();
waitpid();
waitid();
wait3();
wait4();
4、exec函数族
/*列举的方式传参,以NULL结尾*/
int execl(const char *path, const char *arg, ...);
int execlp(const char *file, const char *arg, ...);
int execle(const char *path, const char *arg, ..., char * const envp[]);
/*参数向量表传递参数*/
int execv(const char *path, char *const argv[]);
int execvp(const char *file, char *const argv[]);
int execvpe(const char *file, char *const argv[],char *const envp[]);
5、用户权限及组权限(u+s,g+s)
getuid(); /*获取实际用户id*/
geteuid(); /*获取有效用户id*/
getgid(); /*获取实际组id*/
getegid(); /*获取有效组id*/
setuid(); /*设置实际用户id*/
setgid(); /*设置实际组id*/
setreuid(); /*设置真实及有效的用户识别码*/
setregid(); /*设置真实及有效的组识别码*/
seteuid(); /*设置有效用户id*/
setegid(); /*设置有效组id*/