我在製作一個支持用戶參數和io重定向的shell程序。我有IO重定向麻煩,如:爲shell程序標記一個char *
$cat <hello> world
首先我保存的參數在char*
陣列。我檢查第一個字符是<
還是>
,如果是我需要刪除第一個字符並創建一個文件描述符。
這是我正在做的。
char* args[50];//<-- cat <hello and >world are in here
char* fd[2];
int fdin, fdout;
if(args[j][0] == '<'){
close(fdout);
strncpy(fd[0], args[j][1]. strlen(args[j])-1);
fdin = open(fd[0], O_RDONLY);
}
我認爲這不回答OP問題。他想自己實現shell(而不是執行所有分析工作的shell)。所以他有一些東西要讀取輸入(到字符緩衝區)並解析這一行。 – rslemos
注意:'argv [argc] == NULL'。 §5.1.2.2.12 – chux
我的確知道如何使用argc和argv,但這是一個shell程序,就像我首先用./a執行它一樣。出來,然後我提示一些命令,例如。 ls -l。但是,我已經找到了解決此問題的更好方法,感謝您的幫助:D – user3708934