使用fork函数创建一个进程 pid_t fork(void);
#include <stdio.h>
#include <sys/types.h>
#include <unistd.h>
int main()
{
pid_t pid;
pid = getpid();
fork();
printf("my pid is %d\n",pid);
return 0;
}
fork函数调用成功,返回两次
返回值为0,代表当前进程是子进程
返回值非负数,代表当前进程为父进程
调用失败,返回-1
#include <stdio.h>
#include <sys/types.h>
#include <unistd.h>
int main()
{
pid_t pid;
printf("pid = %d\n",getpid());
pid = fork();
if(pid > 0){
printf("this is father print,father pid = %d\n",getpid());
}
else if(pid == 0){
printf("this is child print,child pid = %d\n",getpid());
}
return 0;
}
#include <stdio.h>
#include <sys/types.h>
#include <unistd.h>
int main()
{
pid_t pid;
pid_t pid2;
pid_t retpid;
pid = getpid();
printf("befor fork pid = %d\n",pid);
retpid = fork();
pid2 = getpid();
printf("after fork pid2:%d\n",pid2);
if(pid == pid2){
printf("this is father print,father pid = %d\n",retpid);
}
else{
printf("this is child print,retpid=%d,child pid = %d\n",retpid,getpid());
}
return 0;
}