#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <sys/wait.h>
int main()
{
int pid, choice;
char cmd[20];
pid = fork(); // Create child process
if (pid < 0)
{
printf("Process creation unsuccessful\n"); }
if (pid == 0) // Child process
{
do
{
printf("Enter the command: ");
system(cmd
); // Execute command
printf("Enter 1 to continue or 0 to exit: ");
} while (choice == 1);
}
else // Parent process
{
wait(NULL); // Parent waits for child
printf("\nChild process completed.\n"); }
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDx1bmlzdGQuaD4KI2luY2x1ZGUgPHN0ZGxpYi5oPgojaW5jbHVkZSA8c3lzL3dhaXQuaD4KCmludCBtYWluKCkKewogICAgaW50IHBpZCwgY2hvaWNlOwogICAgY2hhciBjbWRbMjBdOwoKICAgIHBpZCA9IGZvcmsoKTsgICAvLyBDcmVhdGUgY2hpbGQgcHJvY2VzcwoKICAgIGlmIChwaWQgPCAwKQogICAgewogICAgICAgIHByaW50ZigiUHJvY2VzcyBjcmVhdGlvbiB1bnN1Y2Nlc3NmdWxcbiIpOwogICAgICAgIGV4aXQoMSk7CiAgICB9CgogICAgaWYgKHBpZCA9PSAwKSAgIC8vIENoaWxkIHByb2Nlc3MKICAgIHsKICAgICAgICBwcmludGYoIlxuQ2hpbGQgcHJvY2Vzc1xuIik7CgogICAgICAgIGRvCiAgICAgICAgewogICAgICAgICAgICBwcmludGYoIkVudGVyIHRoZSBjb21tYW5kOiAiKTsKICAgICAgICAgICAgc2NhbmYoIiVzIiwgY21kKTsKCiAgICAgICAgICAgIHN5c3RlbShjbWQpOyAgIC8vIEV4ZWN1dGUgY29tbWFuZAoKICAgICAgICAgICAgcHJpbnRmKCJFbnRlciAxIHRvIGNvbnRpbnVlIG9yIDAgdG8gZXhpdDogIik7CiAgICAgICAgICAgIHNjYW5mKCIlZCIsICZjaG9pY2UpOwoKICAgICAgICB9IHdoaWxlIChjaG9pY2UgPT0gMSk7CgogICAgICAgIGV4aXQoMCk7CiAgICB9CiAgICBlbHNlICAgLy8gUGFyZW50IHByb2Nlc3MKICAgIHsKICAgICAgICB3YWl0KE5VTEwpOyAgIC8vIFBhcmVudCB3YWl0cyBmb3IgY2hpbGQKICAgICAgICBwcmludGYoIlxuQ2hpbGQgcHJvY2VzcyBjb21wbGV0ZWQuXG4iKTsKICAgIH0KCiAgICByZXR1cm4gMDsKfQo=