c - 如果标准输入是文件,main 的 char *argv[] 不包含参数

标签 c posix stdin io-redirection argv

我是 C 的小新手。

./main 7 4

终端中的这个命令导致 argv[1] = 7,argv[2] = 4。

./main <input.in

当我在终端中使用标准输入的重定向时,它只显示 argc = 1(./main)。

有什么方法可以解决这个问题,还是我必须尝试其他方法?

最佳答案

你的 shell 解释 <file.txt作为“将 file.txt 的内容发送到此进程的标准输入”,因此您的程序永远不会看到 <file.txt部分。

没有办法解决这个问题,因为这是 POSIX(可能还有其他)shell 的故意特性。

关于c - 如果标准输入是文件,main 的 char *argv[] 不包含参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40189917/

上一篇:Cassandra 聚合

下一篇:Haskell 日志库错误

相关文章:

c - 获取多个字符串作为输入

c - 如何在计算着色器中修改顶点的特定属性

c - 如何区分普通文件和符号链接(symbolic link)?

c套接字: flushing data to let client know its okay to type

c - 如何在C中输入一行?

Ant exec 任务 : How can I read input from console stdin?

c++ - 值(value)的生命周期

c - 将 waitpid 与 WNOHANG 一起使用时的错误状态

c - 我想用管道和信号制作一个 REPL 风格的程序,但是我的程序锁定了

c - 系统调用是否直接发送到内核?