我在测试C中的argv[]
,注意到如果你在shell中键入
./program.out <
“
<
”不是作为参数读取的,而是作为其他参数读取的,它会给我一个错误:bash: syntax error near unexpected token `newline'
有人能解释一下那是什么吗?
最佳答案
<
和>
是Bash(和大多数其他shell)中的许多重定向操作符中的两个。它们通过将stdin和stdout分别重定向到/从一个源执行操作。当您编写a.out <
时,shell在<
之后需要一个文件名,作为从中读取标准输入的位置。如果不指定任何内容,shell将遇到后面的新行并出错。
如果要向程序传递文本“a.out '<',要么a.out \<
。
进一步阅读:http://www.tldp.org/LDP/abs/html/io-redirection.html
关于c - 在Unix中如何处理“<”?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43301354/