子进程中调用system函数为什么导致无法被正确回收
时间: 2023-10-02 21:04:51 浏览: 85
系统编程中常用函数总结
子进程中调用system函数,会创建一个新的进程去执行调用的命令,然后等待命令执行完毕后返回。如果在子进程中调用system函数,而没有使用wait函数回收子进程的资源,就可能会导致子进程成为僵尸进程。
这是因为,当子进程调用system函数时,它会创建一个新的进程,并在新的进程中执行指定的命令。如果这个新的进程在执行完命令后没有被正确地回收,就会成为一个僵尸进程,占用系统资源。而如果在子进程中使用wait函数,父进程会在子进程退出时接收到SIGCHLD信号,并调用wait函数回收子进程的资源,避免子进程成为僵尸进程。
因此,在子进程中调用system函数时,需要在父进程中使用wait函数回收子进程的资源,以避免出现僵尸进程。
阅读全文