linux 创建子进程
16lz
2021-01-22
函数:fork
原型:
#include <sys/types.h>
#include <unistd.h>
pid_t fork(void);
返回值:
-1:失败,如果超出了父进程所规定的子进程的数量,errno 设为EAGAIN ,如果内存不足 设为ENOMEM
0 :子进程
等待一个进程:
#include <sys/types.h>
#include <sys/wait.h>
pid_t wait(int *stat_loc);
wait系统条用将暂停父进程直到他的子进程结束为止。返回子进程的PID,
pid=fork();
if(pid != 0){
int stat_val;
pid_t child_pid;
child_pid = wait(&stat_val);
printf("child has finished : pid = %d \n",child_pid);
if(WINFWXITED(stat_val))
printf("child exited with code %d \n",WEXITSTATUS(stat_val));
else
printf("child terminated abnormally \n");
}
*僵尸进程
fork 子进程之后 ,运行,直到子进程终止,但进程表中的子进程表项不会立刻释放,虽然子进程已经把不在运行,但它还处于系统中,这样的子进程成为僵尸进程,直到父进程执行完毕退出。
更多相关文章
- linux c 多进程socket程序,如何实现父进程监听,子进程接受连接(注
- 边学边干Linux内核指导(8)——进程调度
- Linux下的进程间通信
- 进程实际内存占用: 私有驻留内存数(Private RSS)介绍
- Linux内核分析-9/进程的调度时机
- mysql使用kill无法杀死进程
- Android进程间(IPC机制)通信(Bundler,Messenger,AIDL,ContentProvi
- Android中bindService的细节之二:从进程的角度分析绑定Service的
- Android之进程间通信(IPC)-Messenger