#include <stdio.h>
#include <unistd.h>
#include <sys/types.h>
int main()
{
pid_t pid;
/* fork a child process */
pid = fork();
if (pid < 0) { /* error occurred */
}
else if (pid == 0) { /* child process */
printf("I am the child %d\n",pid
); execlp("/bin/ls","ls",NULL);
}
else { /* parent process */
/* parent will wait for the child to complete */
printf("I am the parent %d\n",pid
); wait(NULL);
}
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDx1bmlzdGQuaD4KI2luY2x1ZGUgPHN5cy90eXBlcy5oPgoKaW50IG1haW4oKQp7CnBpZF90IHBpZDsKCiAgICAvKiBmb3JrIGEgY2hpbGQgcHJvY2VzcyAqLwoJcGlkID0gZm9yaygpOwoKCWlmIChwaWQgPCAwKSB7IC8qIGVycm9yIG9jY3VycmVkICovCgkJZnByaW50ZihzdGRlcnIsICJGb3JrIEZhaWxlZFxuIik7CgkJZXhpdCgtMSk7Cgl9CgllbHNlIGlmIChwaWQgPT0gMCkgeyAvKiBjaGlsZCBwcm9jZXNzICovCgkJcHJpbnRmKCJJIGFtIHRoZSBjaGlsZCAlZFxuIixwaWQpOwoJCWV4ZWNscCgiL2Jpbi9scyIsImxzIixOVUxMKTsKCX0KCWVsc2UgeyAvKiBwYXJlbnQgcHJvY2VzcyAqLwoJCS8qIHBhcmVudCB3aWxsIHdhaXQgZm9yIHRoZSBjaGlsZCB0byBjb21wbGV0ZSAqLwoJCXByaW50ZigiSSBhbSB0aGUgcGFyZW50ICVkXG4iLHBpZCk7CgkJd2FpdChOVUxMKTsKCQkKCQlwcmludGYoIkNoaWxkIENvbXBsZXRlXG4iKTsKCQlleGl0KDApOwoJfQp9Cg==