Linux网络编程-进程(exec与孤儿、僵尸进程)

本文探讨了Linux网络编程中的exec函数族,解释了如何通过这些函数替换调用进程的用户区。同时,文章介绍了僵尸进程和孤儿进程的概念,指出孤儿进程无害,但僵尸进程因资源未被父进程回收而可能造成问题,需要通过wait和waitpid函数进行处理。
摘要由CSDN通过智能技术生成

Linux网络编程-exec函数族

根据指定文件名找到可执行文件,并用它来取代调用进程。(调用成功不会返回,失败返回-1)。
从虚拟内存地址空间上理解,就是除内核区外,其他用户区等都被可执行程序的用户区替换。

exec函数族在man文档中

    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 execve(const char *path, char *const argv[], char *const envp[]);

path:可执行文件;agr:可执行文件的参数列表(第一个参数一般为名称,最后以null结束)。最常用的execl,excelp。execl(“bin/ps”,“ps”,NULL);而excelp可以从环境变量读取可执行文件。

僵尸进程&孤儿进程

void _exit(int status);
void exit(int status);

c语言库中的exit退出程序会先刷新I/O缓冲,关闭文件描述符再终止进程。
孤儿进程:父进程运行结束,子进程还在运行。内核会把孤儿进程的父进程设置为init。 因此孤儿进程无危害。
僵尸进程:内核区的PCB数据需要父进程释放,如果进程终止,父进程没有回收子进程就会变成僵尸进程,僵尸进程不能被kill杀死。僵尸进程的pid号一直被占用,有危害。所以父进程必须使用wait和waitpid收回资源。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值