Code:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <dirent.h>
#include <fcntl.h>
#include <time.h>
#include <sys/param.h>
char history[100][100];
int historyCount = 1;
char background[100][100];
char globalCommand[100];
int main(int argc, char *argv[])
{
while (1)
{
pid_t childPid;
int status;
char * cmdLine=malloc(100);
char * path=malloc(100);
char * execCommand=malloc(100);
path = printPrompt();
printf("%s# ",path);
cmdLine = readCommandLine();
//if( isBuiltInCommand(cmdLine, path) == 1)
{
if (strcmp("exit", cmdLine) == 0)
{
exit(8);
}
else
//executeBuiltInCommand(cmdLine, path);
}
else
{
execCommand = cmdLine;
printf("%s\n", execCommand);
childPid = fork();
//if (childPid == 0)
{
//if (execlp (globalCommand, globalCommand,(char*)0) == -1)
// perror("exec");
printf("%s\n",execCommand);
}
if (childPid < 0)
{
perror ("fork");
return 0;
}
//if (childPid == 0)
//{
//if (execlp ("ps", "ps",(char*)0) == -1)
// perror("exec");
//exit(127);
//printf("childPid %i\n", childPid);
//}
/* Have the parent wait for child to complete */
else
{
//if (runInForeground(cmdLine))
{
if (wait (&status) < 0)
perror ("wait");
}
/*else
{
//record list of background jobs
} */
}
}
}
return EXIT_SUCCESS;
}