online compiler and debugger for c/c++

code. compile. run. debug. share.
Source Code    Language
#include <iostream> #include <cstdlib> #include <sys/types.h> #include <sys/wait.h> #include <unistd.h> using namespace std; [[noreturn]] void dowork() { std::cout << "Child doing work..." << std::endl; // Exit with 0 to indicate success or any other number to indicate failure std::srand(time(nullptr)); int result = std::rand() & 1; std::exit(result); } int main() { int exitCode; do { pid_t pid = fork(); if(pid == -1) { std::cout << "fork() failed" << std::endl; continue; } if(pid == 0) { // Child - Function call never returns dowork(); } // Parent - Wait until child finished / dies int status; pid_t res = waitpid(pid, &status, 0); if(res == -1) { std::cout << "waitpid() failed" << std::endl; continue; } if(WIFEXITED(status)) { exitCode = WEXITSTATUS(status); } else { // Child could have died by signal or other causes... exitCode = -1; } std::cout << "Child exited with " << exitCode << std::endl; sleep(1); } while(exitCode != 0); return 0; }

Compiling Program...

Command line arguments:
Standard Input: Interactive Console Text
×

                

                

Program is not being debugged. Click "Debug" button to start program in debug mode.

#FunctionFile:Line
VariableValue
RegisterValue
ExpressionValue