#include <iostream>
#include <unistd.h> // For fork()
#include <stdlib.h> // For abort()
#include <sys/types.h>
using namespace std;
int main() {
pid_t pid = fork(); // Create a new process
if (pid < 0) {
cout << "Fork failed!" << endl;
return 1;
}
else if (pid == 0) {
// This is the child process
cout << "Child Process: PID = " << getpid() << endl;
cout << "Something went wrong in child process! Aborting..." << endl;
cout.flush(); // Ensure output is flushed
abort(); // Abnormal termination
}
else {
// This is the parent process
cout << "Parent Process: PID = " << getpid() << ", Child PID = " << pid << endl;
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dW5pc3RkLmg+ICAgLy8gRm9yIGZvcmsoKQojaW5jbHVkZSA8c3RkbGliLmg+ICAgLy8gRm9yIGFib3J0KCkKI2luY2x1ZGUgPHN5cy90eXBlcy5oPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmludCBtYWluKCkgewogICAgcGlkX3QgcGlkID0gZm9yaygpOyAgLy8gQ3JlYXRlIGEgbmV3IHByb2Nlc3MKCiAgICBpZiAocGlkIDwgMCkgewogICAgICAgIGNvdXQgPDwgIkZvcmsgZmFpbGVkISIgPDwgZW5kbDsKICAgICAgICByZXR1cm4gMTsKICAgIH0KICAgIGVsc2UgaWYgKHBpZCA9PSAwKSB7CiAgICAgICAgLy8gVGhpcyBpcyB0aGUgY2hpbGQgcHJvY2VzcwogICAgICAgIGNvdXQgPDwgIkNoaWxkIFByb2Nlc3M6IFBJRCA9ICIgPDwgZ2V0cGlkKCkgPDwgZW5kbDsKICAgICAgICBjb3V0IDw8ICJTb21ldGhpbmcgd2VudCB3cm9uZyBpbiBjaGlsZCBwcm9jZXNzISBBYm9ydGluZy4uLiIgPDwgZW5kbDsKICAgICAgICBjb3V0LmZsdXNoKCk7ICAvLyBFbnN1cmUgb3V0cHV0IGlzIGZsdXNoZWQKICAgICAgICBhYm9ydCgpOyAgICAgICAvLyBBYm5vcm1hbCB0ZXJtaW5hdGlvbgogICAgfQogICAgZWxzZSB7CiAgICAgICAgLy8gVGhpcyBpcyB0aGUgcGFyZW50IHByb2Nlc3MKICAgICAgICBjb3V0IDw8ICJQYXJlbnQgUHJvY2VzczogUElEID0gIiA8PCBnZXRwaWQoKSA8PCAiLCBDaGlsZCBQSUQgPSAiIDw8IHBpZCA8PCBlbmRsOwogICAgfQoKICAgIHJldHVybiAwOwp9Cg==