Shell输入/输出重定向

时间:2019-04-04 04:14:02

标签: c shell io arguments io-redirection

我被这种方法困住了,它会扫描argv以查找是否使用<或>来指示输入或输出重定向 //命令[参数] [ oufile]

我正在实现重定向方法,该方法打开一个文件以从中读取/写入文件。 任何帮助将不胜感激。

void do_redirect(char **argv)
{
    int i;


    for(i=0; argv[i]; i++)
    {
            if (!strcmp(argv[i],"<")) {


                   int fp1 = open(argv[i+1] , O_WRONLY|O_CREAT, 0);                                             
                   dup2(fp1, STDIN_FILENO);
                   argv[i]=NULL; 
                   close(fp1);
            }
            else if (!strcmp(argv[i],">")) {

                    int fp2 = open(argv[i+1] , O_WRONLY|O_CREAT, 0); 
                    dup2(fp2, STDOUT_FILENO);
                    argv[i]=NULL;
                    close(fp2);
            }
       }

 }

0 个答案:

没有答案