這是一個學校作業。爲shell輸出重定向創建文件
所以基本上我已經寫了一個處理終止與&
命令的殼的C代碼,並且使用>
或<.
使用管道和fork()
,execvp()
輸入/輸出重定向。
問題是我的輸入/輸出重定向僅處理已存在的文件。
我需要知道的是我將如何去重定向輸出到一個不存在的文件 - 我知道我將不得不創建該文件,但我不知道如何工作。
例如:ls -a < test.txt
如果test.txt的是不在目錄中,我需要創建它,並將輸出重定向到。 那麼如何創建這個文件?
這裏是不創建一個新的文件中的一些基本的示例代碼:
else if('>' == buff[i]){
i++;
j=0;
if(' ' == buff[i])
i++;
while(' ' != buff[i] && i < len)
out_file[j++]=buff[i++];
out_file[j]='\0';
if ((ofd = open(out_file,1)) < 0){
perror("output redirected file");
exit(1);
}
close(1);
dup(ofd);
}
任何幫助與我怎麼能輸出,並創建一個新的文件,將不勝感激!謝謝!
小技術說明比較:你的意思是'LS -a> test.txt'? – chepner