Untitled
unknown
c_cpp
3 years ago
956 B
4
Indexable
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> #include <sys/wait.h> #include <sys/types.h> int main (int argc, char *argv[]){ char s[20]; while(strcmp("exit", s) != 0){ //same printf("$"); scanf("%s", s); char *token = strtok(s, " "); int a = 0; //activation variable to see if command or argument while(token != NULL){ if(strcmp(token, "ls") == 0){ char *args[2]; args[0] = "/bin/ls"; args[1] = NULL; int rc = fork(); if(rc<0){printf("Fork failed");} else if(rc==0){ execv(args[0], args); exit(1); } else{ int w = wait(NULL); printf("Success!\n"); } break; } if(a == 0){ if(strcmp(token, "sleep") == 0){a = 1;} else if(strcmp(token, "echo") == 0){a = 2;} } if(a == 1){ printf("Sleep: variable."); a = 0; } if(a == 2){ printf("Echo: variable."); a = 0; } token = strtok(NULL, " "); } } }
Editor is loading...