#include #include #include #include #include "Pish.h" // Dummy function for Pish to run char* getInput(void) { ; } // Dummy function for Pish to run void exec(char* command) { ; } void Pish(void) { while (1) { char* command = getInput(); int retval = fork(); // Child if (retval == 0) { // This is the child process // Setup the child's process environment here // E.g., where is standard I/O, how to handle signals? exec(command); // exec does not return if it succeeds printf("ERROR: Could not execute %s\n", command); exit(1); } // Parent else { // This is the parent process; Wait for the child to finish int pid = retval; wait(pid); } } }