我想将文件传递给c程序。
如果我在IDE中执行此参数
./test string string < test.txt
返回argc = 5
,但是在终端上我只是得到argc = 3
。
似乎是因为有“
是什么意思?我在Tilix终端上使用Ubuntu
我想将文件传递给c程序。
如果我在IDE中执行此参数
./test string string < test.txt
返回argc = 5
,但是在终端上我只是得到argc = 3
。
似乎是因为有“
是什么意思?我在Tilix终端上使用Ubuntu
重定向是由Shell执行的,对您的程序不(直接)可见。
./test string string < test.txt
意味着
test.txt
以读取文件描述符1 ./test
和string
运行string
在第2点运行的程序将继承父对象的文件描述符,因此其标准输入将连接到打开的文件句柄(而不是Shell的当前标准输入,它可能是您的终端,也可能是其他文件句柄)。
顺便说一句,您可能希望避免调用程序test
,尽管只要您不忘记使用显式路径来调用它,这是无害的。
<
符号将在某处(文本文件)插入信息,就像您自己键入信息一样。它通常与仅从标准输入中获取信息的命令一起使用。
例如(使用tr):
tr '[A-Z]' '[a-z]' < fileName.txt > fileNameNew.txt
上面的示例会将fileName.txt
的内容插入到tr
的输入中,并将结果输出到fileNameNew.txt
。