- 程序:只占用磁盘空间
- 进程:是运行起来的程序,占用内存、cpu等系统资源
- fork函数:create a child process
函数原型:pid_t fork(void); 父进程返回子进程的pid,子进程返回0;
int main(int argc,char *argv[])
{
printf("hello world\n");
printf("hello\n");
printf("bye\n");
pid_t pid =fork();
if(pid==-1)
{
perror("fork error");
exit(1);
}
else if(pid==0)
{
printf("child is create\n");
}
else if(pid>0)
{
printf("parent process:my child is %d\n",pid);
}
printf("end of file\n");
return 0;
}
- fork之前的代码之前的代码子进程没有机会执行,所以出现一次,fork之后的代码子进程也有机会执行,所以出现两次
循环创建子进程
int main()
{
int i;
pid_t pid;
for(i=0;i<5;i++)
{
if(fork()==0)
break;
}
if(i==5)
{
sleep(5);
printf("parent\n");
}
else
{
sleep(1);
printf("%dth child\n",i+1);
}
return 0;
printf("%d child\n",i++);
}