簡體   English   中英

創建用於Shell輸出重定向的文件

[英]creating file for shell output redirection

這是學校的作業。

因此,基本上,我為外殼編寫了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);
        }

我如何輸出和創建新文件的任何幫助將不勝感激! 謝謝!

如果需要,您需要告訴open創建文件:

if ( ( ofd = open(out_file, O_WRONLY | O_CREAT) ) < 0 ) {

請注意,如果您使用命名常量open標志,則代碼將更具可讀性。 與功能相當的產品比較

if ( ( ofd = open(out_file, 513) ) < 0 ) {

甚至

if ( ( ofd = open(out_file, 0x0201) ) < 0 ) {

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM