我在测试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/

10-15 12:58