fork.c
#include#include #include #include int main(void){ pid_t result; result = fork(); if (result == -1) { printf("Fork Error!\n"); } else { if (result == 0) { printf("The returned value is %d\nThe child process!!\nMy PID is %d\n", result, getpid()); } else { printf("The returned value is %d\nThe father process!!\nMy PID is %d\n", result, getpid()); } } return 0;}
exec.c
#include#include #include int main(void){ pid_t result; result = fork(); if (result == 0) { if (execlp("ps", "ps", "-ef", NULL) < 0) { printf("Execlp error\n"); } } return 0;}
waitpid.c
#include#include #include #include #include int main(void){ pid_t pc, pr; pc = fork(); if (pc < 0) { printf("Error fork\n"); } else if (pc == 0) { sleep(5); exit(0); } else { do { pr = waitpid(pc, NULL, WNOHANG); if(pr == 0) { printf("The child process has not exited!\n"); sleep(1); } }while (pr == 0); if (pr == pc) { printf("Get child exit code: %d\n", pr); } else { printf("Some error occured.\n"); } } return 0;}
参考资料:《嵌入式Linux应用程序开发标准教程》