赞
踩
fork()返回值是pid_t类型的
创建成功时子进程返回0,父进程返回子进程id,所以一次fork调用两次返回
#include<stdio.h> #include<stdlib.h> #include<string.h> #include<unistd.h> #include<pthread.h> int main(int char, char *argv[]) { printf("before fork1...\n"); printf("before fork2...\n"); printf("before fork3...\n"); printf("before fork4...\n"); //模拟执行了很多条语句 pid_t pid = fork(); if(pid == -1)//没有创建成功就返回-1 { perror("fork error"); exit(1); }else if(pid == 0){//说明是子进程 printf("child is created\n"); }else if(pid >0)//是父进程,父进程返回子进程的pid { printf("parent process: my child is %d\n", pid); } printf("========end of file\n"); return 0; }
结果
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。