#include <sys/types.h> #include <unistd.h> #include <stdio.h> #include <stdlib.h> int main( int argc, char *argv[]) { printf("login name:%s/n", getlogin()); printf( "setup 1, %d, %d/n", getpid(), getppid()); abort(); pid_t pid = fork(); if ( 0 != pid ) { printf( "parent continue,%d,%d/n", getpid(), getppid()); sleep(10); printf( "%d,%d exit/n", getpid()); } else { printf("children continue, %d,%d/n", getpid(), getppid()); pid_t pidTmp = fork(); if ( 0 != pidTmp ) { sleep(1); printf("children %d,%d exit/n", getpid(), getppid()); } else { printf("children's children continue, %d,%d/n", getpid(), getppid() ); sleep(5); printf( "children's children %d,%d exit/n", getpid(), getppid()); } } return 0; }