如何在C中使用重定向进行文件输入

时间:2013-10-19 15:43:09

标签: c input io-redirection

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

./a.out < fileName.txt

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

3 个答案:

答案 0 :(得分:13)

使用重定向将输入文件的内容发送到stdin,因此您需要从代码中的stdin读取,所以类似于(为清晰起见省略了错误检查)

#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;
}

答案 1 :(得分:2)

1。)你关闭stdin然后为它分配一个不同的文件处理程序 2.)用任何其他文件处理程序替换stdin    使用dup2功能你可以实现它

答案 2 :(得分:0)

您不使用fgets,而是使用gets

重定向意味着,您的终端输入将是文件内容。但是你的程序不知道它来自哪里,因为它是由操作系统完成的。