117a85657Srtm #include "types.h" 2*d7b3b802Skaashoek #include "stat.h" 3*d7b3b802Skaashoek #include "user.h" 417a85657Srtm #include "fs.h" 517a85657Srtm #include "fcntl.h" 617a85657Srtm 717a85657Srtm char *args[100]; 8*d7b3b802Skaashoek void parse(char buf[]); 917a85657Srtm 1017a85657Srtm int 1117a85657Srtm main(void) 1217a85657Srtm { 1317a85657Srtm char buf[128]; 1417a85657Srtm int pid; 1517a85657Srtm 1617a85657Srtm while(1){ 1743572072Srtm puts("$ "); 1817a85657Srtm gets(buf, sizeof(buf)); 1917a85657Srtm if(buf[0] == '\0') 2017a85657Srtm continue; 2117a85657Srtm pid = fork(); 2217a85657Srtm if(pid == 0){ 23*d7b3b802Skaashoek parse(buf); 2417a85657Srtm exec(buf, args); 2543572072Srtm printf(1, "%s: not found\n", buf); 2617a85657Srtm exit(); 2717a85657Srtm } 2817a85657Srtm if(pid > 0) 2917a85657Srtm wait(); 3017a85657Srtm } 3117a85657Srtm } 32*d7b3b802Skaashoek 33*d7b3b802Skaashoek void 34*d7b3b802Skaashoek parse(char buf[]) 35*d7b3b802Skaashoek { 36*d7b3b802Skaashoek int j = 1; 37*d7b3b802Skaashoek int i; 38*d7b3b802Skaashoek args[0] = buf; 39*d7b3b802Skaashoek for (i = 0; buf[i] != '\0'; i++) { 40*d7b3b802Skaashoek if (buf[i] == ' ') { 41*d7b3b802Skaashoek buf[i] = '\0'; 42*d7b3b802Skaashoek args[j++] = buf + i+1; 43*d7b3b802Skaashoek if (j >= 100) { 44*d7b3b802Skaashoek printf(2, "too many args\n"); 45*d7b3b802Skaashoek exit(); 46*d7b3b802Skaashoek } 47*d7b3b802Skaashoek } 48*d7b3b802Skaashoek } 49*d7b3b802Skaashoek } 50