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

我需要从终端获取文件,我知道命令将如下所示:

./a.out < fileName.txt 

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

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

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

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

你不使用fgets ,你使用gets

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