Facebook
From Baby Panda, 4 Years ago, written in C.
Embed
Download Paste or View Raw
Hits: 229
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4.  
  5. int main(void)
  6. {
  7.         char str[1024];
  8.  
  9.         while(1){
  10.                 fputs("$ ", stdout);
  11.                 fflush(stdout);
  12.                 if(fgets(str, sizeof str, stdin))
  13.                 {
  14.                         char *dup = strdup(str);
  15.                         char *cmd = strtok(dup, " \n");
  16.                         char *param = strtok(NULL, " \n");
  17.  
  18.                         if(strcmp(cmd,"exit")==0)
  19.                                 exit(0);
  20.                         else if(strcmp(cmd,"chdir")==0)
  21.                                 chdir(param);
  22.                         else if(fork() == 0)
  23.                         {
  24.                                 char *argv[64];
  25.                                 argv[0] = cmd;
  26.                                 argv[1] = param;
  27.  
  28.                                 int i = 2;
  29.                                 while (argv[i-1] != NULL)
  30.                                 {
  31.                                         argv[i] = strtok(NULL, " \n");
  32.                                         i++;
  33.                                 }
  34.  
  35.                                 execvp(cmd, argv);
  36.                                 printf(strcat(cmd,": not found\n"));
  37.                                 exit(0);
  38.                         }
  39.                         wait();
  40.                 }
  41.         }
  42.         return 0;
  43. }