diff --git a/fork-example/main.c b/fork-example/main.c new file mode 100644 index 0000000..5bf1220 --- /dev/null +++ b/fork-example/main.c @@ -0,0 +1,34 @@ +#include +#include +#include + +int main() +{ + pid_t pid; + + printf("begin\n"); + /* fork a child process */ + pid = fork(); + printf("pid = %i\n", pid); + if (pid < 0) { /* error occurred */ + fprintf(stderr, "Fork Failed"); + return 1; + } + else if (pid == 0) { /* child process */ + execlp("/bin/ls", "ls", NULL); + } + else { /* parent process */ + /* parent will wait for the child to complete */ + wait(NULL); + printf("Child Complete"); + } + return 0; + /* output: + +begin +pid = 15905 +pid = 0 +[ list of files ] + +*/ +}