/* 编写一个程序,创建一个子进程,并在子进程中从键盘读取一个整数,然后在父进程中打印出子进程读取到的整数。 【提示】wait或waitpid 获取子进程返回的结果。 */ #include #include #include #include int main(int argc, char const *argv[]) { pid_t pid = fork(); // 创建子进程 if (pid < 0) { perror("fork"); return -1; } if (pid == 0) // 子进程 { int i; scanf("%d", &i); // 从键盘读取一个整数 return i; // 子进程返回读取到的整数 } else // 父进程 { int status; waitpid(pid, &status, 0); // 等待子进程结束,并获取返回状态 if (WIFEXITED(status)) // 检查子进程是否正常退出 { int child_i = WEXITSTATUS(status); // 获取子进程的返回值 printf("子进程读取到的数字为: %d\n", child_i); } } return 0; }