【问题标题】:How to use redirection in C for file input如何在 C 中使用重定向进行文件输入
【发布时间】:2013-10-19 15:43:09
【问题描述】:

我需要从终端获取文件,我知道命令看起来像:

./a.out < fileName.txt

我不确定如何在我的程序中使用 fgets() 来使用从终端请求的文件。

【问题讨论】:

    标签: c input io-redirection


    【解决方案1】:

    使用重定向将输入文件的内容发送到标准输入,因此您需要从代码中的标准输入读取,例如(为清楚起见省略了错误检查)

    #include <stdio.h>
    
    #define BUFFERSIZE 100
    
    int main (int argc, char *argv[])
    {
        char buffer[BUFFERSIZE];
        fgets(buffer, BUFFERSIZE , stdin);
        printf("Read: %s", buffer);
        return 0;
    }
    

    【讨论】:

      【解决方案2】:

      1.) 您关闭标准输入,然后为其分配不同的文件处理程序 2.) 用任何其他文件处理程序替换标准输入 使用 dup2 功能即可实现

      【讨论】:

      • 这是错误的。如果您正在重定向输入,您应该从stdin 读取而不关闭它。
      猜你喜欢
      • 2021-03-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-17
      • 1970-01-01
      相关资源
      最近更新 更多