linux c创建子进程
*前言了解fork()函数 一个进程调用fork()函数创建该进程子进程,系统会为该子进程分配资源存储数据和代码的空间,父进程将数据和代码复制给子进程,子进程按父进程代码重新执行,即克隆了父进程并重新执行。fork()函数的返回值,-1即fork失败,值为0时即子进程,返回值大于0即子进程id;c代码样例:#include <stdio.h>#include &
·
*前言
了解fork()函数
一个进程调用fork()函数创建该进程子进程,系统会为该子进程分配资源存储数据和代码的空间,父进程将数据和代码复制给子进程,子进程按父进程代码重新执行,即克隆了父进程并重新执行。
fork()函数的返回值,-1即fork失败,值为0时即子进程,返回值大于0即子进程id;
c代码样例:
#include <stdio.h>
#include <unistd.h>
int main(int arg,char* argv[]){
// int 被 typedef为 pid_t
pid_t pid=fork();
// 当pid==0时,是子进程代码运行区域。其他则是父进程运行区域。
if(pid<0){
printf("Create child process failure ...\n");
}else if(pid==0){
//子进程执行体
printf("Hi i am child process ,my processId is %i \n",getpid());
}
else{
//父进程执行体
printf("parent process is run ,myid is %i \n",getpid());
}
// 执行体结束标志
if(pid==0)
{
printf("pid=%i child process end ... \n",getpid());
}
else{
// 睡眠5s,等待子先进程结束
sleep(5);
printf("pid=%i Parent process End ... \n",getpid());
}
return 0;
}
运行结果:
更多推荐
已为社区贡献2条内容
所有评论(0)