Back
2
#include <iostream>
#include <unistd.h>
#include <sys/wait.h>
int main() {
std::cout << "Process Control Demonstration:\n";
pid_t pid = fork();
if (pid == 0) {
std::cout << "Child process running. PID: " << getpid() << std::endl;
sleep(2);
std::cout << "Child process finished.\n";
exit(0);
} else if (pid > 0) {
std::cout << "Parent process running. PID: " << getpid() << std::endl;
std::cout << "Waiting for child process to finish...\n";
wait(nullptr);
} else {
std::cerr << "Fork failed.\n";
return 1;
}
std::cout << "Listing current processes using 'ps':\n";
system("ps");
std::cout << "Demonstrating kill:"<<getpid()<<"\n";
kill(getpid(), SIGTERM);
}