📄 test10.c
字号:
#include <stdio.h>#include <stdlib.h>#include <sys/types.h>#include <errno.h>#include <string.h>#include <unistd.h>#include <sys/wait.h>void child_process_main1(void);void child_process_main2(void);void child_process_main3(void);int main(int argc, char **argv){ pid_t pid1, pid2, pid3; pid1 = fork(); if (pid1 < 0) { // output_error_message(); } else if (pid1 == 0) { child_process_main1(); exit(0); } pid2 = fork(); if (pid2 < 0) { // output_error_message(); } else if (pid2 == 0) { child_process_main2(); exit(2); } int status; pid_t returned_pid; for (;;) { //returned_pid = wait(&status); //pid_t waitpid(pid_t pid, int *stat_loc, int options); //returned_pid = waitpid(-1, &status, 0); //returned_pid = waitpid(0, &status, 0); //returned_pid = waitpid(-1*getgid(), &status, 0); returned_pid = waitpid(pid2, &status, 0); printf("wait() returned.\n"); printf("child process (pid = %d) exited.\n", returned_pid);#if 0 if (returned_pid == pid1) { printf("child process 1 exited.\n"); } else if (returned_pid == pid2) { printf("child process 2 exited.\n"); } else { printf("unkonwed error.\n"); }#endif#if 0 if (returned_pid < 0) { printf("wait() failed: %s.\n", strerror(errno)); } else if (returned_pid != pid2) { returned_pid = wait(&status); printf("wait() returned.\n"); printf("child process (pid = %d) exited.\n", returned_pid); break; } else { printf("child process 2 exited.\n"); continue; }#endif switch ((int) returned_pid) { case (int) pid1: //connect_to_control_center(); break; case (int) pid2: //connect_to_device_1(); break; case (int) pid3: //connect_to_device_2(); break; default: break; } } return 0;}void child_process_main1(void){ printf("[%d]child process main()\n", getpid()); //connect_to_control_center();}void child_process_main2(void){ printf("[%d]child process main()\n", getpid()); //connect_to_device_1(); //sleep(10);}void child_process_main3(void){ printf("[%d]child process main()\n", getpid()); //connect_to_device_2(); //sleep(10);}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -