#include <stdio.h>
#include <sys/types.h>
#include <unistd.h>
#include <sys/wait.h>
int main()
{
pid_t pid = fork();
if (pid == 0)
{
// Child process
printf("Child Process: PID = %d, PPID = %d\n", getpid
(), getppid
()); sleep(2); // Simulate some work
}
else if (pid > 0)
{
// Parent process waits for child to finish
wait(NULL);
printf("Parent Process: PID = %d, Child completed\n", getpid
()); }
else
{
}
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KI2luY2x1ZGUgPHVuaXN0ZC5oPgojaW5jbHVkZSA8c3lzL3dhaXQuaD4KCmludCBtYWluKCkKewogICAgcGlkX3QgcGlkID0gZm9yaygpOwoKICAgIGlmIChwaWQgPT0gMCkKICAgIHsKICAgICAgICAvLyBDaGlsZCBwcm9jZXNzCiAgICAgICAgcHJpbnRmKCJDaGlsZCBQcm9jZXNzOiBQSUQgPSAlZCwgUFBJRCA9ICVkXG4iLCBnZXRwaWQoKSwgZ2V0cHBpZCgpKTsKICAgICAgICBzbGVlcCgyKTsgLy8gU2ltdWxhdGUgc29tZSB3b3JrCiAgICAgICAgcHJpbnRmKCJDaGlsZCBjb21wbGV0ZWRcbiIpOwogICAgfQogICAgZWxzZSBpZiAocGlkID4gMCkKICAgIHsKICAgICAgICAvLyBQYXJlbnQgcHJvY2VzcyB3YWl0cyBmb3IgY2hpbGQgdG8gZmluaXNoCiAgICAgICAgd2FpdChOVUxMKTsKICAgICAgICBwcmludGYoIlBhcmVudCBQcm9jZXNzOiBQSUQgPSAlZCwgQ2hpbGQgY29tcGxldGVkXG4iLCBnZXRwaWQoKSk7CiAgICB9CiAgICBlbHNlCiAgICB7CiAgICAgICAgcHJpbnRmKCJGb3JrIGZhaWxlZFxuIik7CiAgICB9CgogICAgcmV0dXJuIDA7Cn0K