#include // fork, execlp #include // pid_t #include // wait #include // printf int main(int argc, char* argv[]) { pid_t fork1 = fork(); pid_t fork2 = fork(); if (fork1 == 0) { // in child 1 execlp(argv[1], argv[1], (char*)NULL); } else if (fork2 == 0) { // in child 2 execlp(argv[2], argv[2], (char*)NULL); } else { int firstStatus, secondStatus; pid_t firstPID = wait(&firstStatus); pid_t secondPID = wait(&secondStatus); printf("%s %d\n", argv[1 + (firstPID != fork1)], firstStatus); printf("%s %d\n", argv[1 + (secondPID != fork1)], secondStatus); } }