Linux 进程-销毁进程笔记

销毁进程的过程:

1.释放资源。内存,文件等等
2.记账信息
3.将进程设置为僵尸状态
4.转存储调度。将CPU让给需要使用的进程。

进程退出的方法:

正常退出:
    1.main函数退出
    2.exit
    3._exit
异常退出:
    1.ctrl+c
    2.abort
    3.kill

//退出时执行注册函数

int on_exit(void (*function)(int ,//int 是退出码
void*),
void* arg); //退出处理函数的参数

等待过程:

pid_t wait(int *status);
//阻塞,知道有子进程退出才返回,status参数会得到子进程是如何死亡的
//返回值:被返回的子进程id,出错,返回-1

WIFEXITED)(status) //如果正常返回,返回真
WEXITSTATUS(status)//如果正常退出,得到推出码
WIFSIGNALED(status)//如果被信号打断退出,返回真
WIERMSIG(status)   //如果是被信号打断,得到信号值

pid_t waitpid(pid_t pid,
int *status,
int options);// 0 WNOHANG
pid>0;等待进程id等于pid的子进程死亡
pid=0;调用者进程所在进程组的任何一个子进程死亡
pid=-1;等待任何一个子进程死亡
pid<-1;|pid|进程组的任何一个子进程死亡

进程空间替换

int execvp(const char *file,//了执行程序名
        char* const argv[]);// main函数的参数

猜你喜欢

转载自blog.csdn.net/porryCn/article/details/80450471