From 3505a0beb096831ac292e8d39fac8f9d3b9cb579 Mon Sep 17 00:00:00 2001 From: Ishwarb Date: Sun, 25 Sep 2022 12:00:48 +0530 Subject: [PATCH] fg-bg attempt 1 --- .ish_history | 36 ++++++------- fg-bg.c | 130 +++++++++++++++++++++++++++++++++++++---------- headers.h | 6 ++- init.c | 1 + ish | Bin 107328 -> 112904 bytes jobs.c | 72 ++++++++++++++++++-------- main.c | 6 ++- processControl.c | 28 +++++----- signal.c | 2 +- 9 files changed, 200 insertions(+), 81 deletions(-) diff --git a/.ish_history b/.ish_history index df4aa5f..c4b1046 100644 --- a/.ish_history +++ b/.ish_history @@ -1,21 +1,21 @@ 20 -cd ./uwu/ - -quit -clear -quit -cd .. -cd OS -ls -cd u:x:0:0:root:/root:/bin/bash - -quit -cd uwu -cd .. -OS -cd OS -cd ./uwu/ -cd .. -cat uwu +date +sleep 1 & +jobs quit +vim & +sleep 1 & +vim & +jobs +gf 5 +vim & +jwel +vim & +jobs +fg 3 +jobs +fg 1 +jobs +fg 2 +asbkdj diff --git a/fg-bg.c b/fg-bg.c index d0155b9..866b882 100644 --- a/fg-bg.c +++ b/fg-bg.c @@ -2,84 +2,162 @@ void fg(char* command) { - char* token = strtok(command," \t"); - if(strcmp(token,"sig") != 0) + char* token = strtok(command," \t"); + if(strcmp(token,"bg") != 0) { - if(debug) printf("the cmd is not sig \n"); + if(debug) printf("the cmd is not bg \n"); } - - int jobNo; - int sigNo; token = strtok(NULL," \t"); int args = 0; + + char jid[MY_LEN]; while(token != NULL) { if(args == 0) { - jobNo = atoi(token) - 1; - if(debug) perror("jobNo arguement\n"); + if(debug) perror("jobid arguement\n"); args++; + strcpy(jid,token); } else { - fprintf(stderr,"Too many arguements for sig\n"); + fprintf(stderr,"Too many arguements for bg\n"); return; } token = strtok(NULL," \t"); } - if(args != 1) + if (args == 0) + { + fprintf(stderr, "Error: enter valid jobIndex\n"); + return; + } + + int jobIndex = atoi(jid); + + if (jobIndex > bgpno) { - fprintf(stderr,"Too few arguements for sig\n"); + fprintf(stderr, "No such process\n"); return; } - if(jobNo >= bgpno) + // Getting process information from child pool + pid_t pid = bgpid[jobIndex - 1]; + char pName[MY_LEN]; + strcpy(pName, bgp[jobIndex - 1]); + + // // Removing process from child pool because it is being moved to the foreground + // removeChild(pid); + bexists[jobIndex - 1] = 0; + + // // Ignoring required signals from the shell + signal(SIGTTOU, SIG_IGN); + signal(SIGTTIN, SIG_IGN); + + // // Setting foreground process flag to 1 to indicate that there is a foreground process running + int fgP = 1; + + // // Giving the specified process terminal control and checking for errors + if(tcsetpgrp(STDIN_FILENO, getpgid(pid))) { - fprintf(stderr,"No such job exists \n"); + fprintf(stderr, "Could not give terminal control to job %d\n", jobIndex); + // Control couldn't be give to the child process, we want the shell to continue + // Set signal handlers to default + signal(SIGTTOU, SIG_DFL); + signal(SIGTTIN, SIG_DFL); + // Print error message and return from the function. + return ; } + // // Telling the job to resume and handling errors (same as above) + if(kill(pid, SIGCONT)) + { + fprintf(stderr, "Unable to resume job %d\n", jobIndex); + signal(SIGTTOU, SIG_DFL); + signal(SIGTTIN, SIG_DFL); + return ; + } + + // // Waiting for foreground process to be stopped or to terminate. + // // If it is stopped (Ctrl+Z), add it to the child pool + int status; + if(waitpid(pid, &status, WUNTRACED) > 0) + if(WIFSTOPPED(status)) + { + strcpy(bgp[bgpno], pName); + if (debug) + printf("bgp[%d] = %s\n", bgpno, bgp[bgpno]); + bgpid[bgpno] = pid; + if (debug) + printf("bgpid[%d] = %d\n", bgpno, bgpid[bgpno]); + bexists[bgpno] = 1; + if (debug) + printf("bexists[%d] = %d\n", bgpno, bexists[bgpno]); + bgpno++; + } + + // exitCode = WEXITSTATUS(status) ? -1 : 1; + + // // Since the foreground process has been exitted from, set the flag back to 0 + // fgP = 0; + // // Return terminal control back to the shell and perform error handling + // // If control cannot be returned, quit the program. + if(tcsetpgrp(STDIN_FILENO, getpgid(0))) + { + fprintf(stderr, "Could not return terminal controll to the shell. Exitting the shell\n"); + return; + } + // // Restore default signal handlers + signal(SIGTTOU, SIG_DFL); + signal(SIGTTIN, SIG_DFL); + return; } void bg(char* command) { - char* token = strtok(command," \t"); - if(strcmp(token,"sig") != 0) + char* token = strtok(command," \t"); + if(strcmp(token,"bg") != 0) { - if(debug) printf("the cmd is not sig \n"); + if(debug) printf("the cmd is not bg \n"); } - - int jobNo; - int sigNo; token = strtok(NULL," \t"); int args = 0; + + char jid[MY_LEN]; while(token != NULL) { if(args == 0) { - jobNo = atoi(token) - 1; - if(debug) perror("jobNo arguement\n"); + if(debug) perror("jobid arguement\n"); args++; + strcpy(jid,token); } else { - fprintf(stderr,"Too many arguements for sig\n"); + fprintf(stderr,"Too many arguements for bg\n"); return; } token = strtok(NULL," \t"); } - if(args != 1) + if (args == 0) { - fprintf(stderr,"Too few arguements for sig\n"); + fprintf(stderr, "Error: enter valid jobIndex\n"); return; } - if(jobNo >= bgpno) + int jobIndex = atoi(jid) - 1; + + if (jobIndex > bgpno) { - fprintf(stderr,"No such job exists \n"); + fprintf(stderr, "No such process\n"); + return; } + + kill(bgpid[jobIndex], SIGCONT); + + return; } \ No newline at end of file diff --git a/headers.h b/headers.h index 149c1d0..8a15206 100644 --- a/headers.h +++ b/headers.h @@ -33,8 +33,12 @@ extern int QUIT; extern int errno; extern char *bgp[MY_LEN]; extern int bgpid[MY_LEN]; -extern int exists[MY_LEN]; +extern int bexists[MY_LEN]; extern int bgpno; +extern char *fgp[MY_LEN]; +extern int fgpid[MY_LEN]; +extern int fexists[MY_LEN]; +extern int fgpno; extern int initSTDIN; extern int initSTDOUT; extern int fd1; diff --git a/init.c b/init.c index 1afef64..1d20383 100644 --- a/init.c +++ b/init.c @@ -7,6 +7,7 @@ void init() strcpy(extension,""); QUIT = 0; bgpno = 0; + fgpno = 0; initSTDIN = 0; initSTDOUT = 1; fd1 = -1; diff --git a/ish b/ish index ac19a4a65d19a8df08999858e3fb88b2a1ffaa50..20e59e0bee6a7115e7052dda3f547b56a78e1957 100755 GIT binary patch delta 35775 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 delta 33082 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