给出5个参数,但终端中只有3个

我想将文件传递给c程序。

如果我在IDE中执行此参数

./test string string < test.txt

返回argc = 5,但是在终端上我只是得到argc = 3

似乎是因为有“

是什么意思?我在Tilix终端上使用Ubuntu

cc4400092 回答:给出5个参数,但终端中只有3个

重定向是由Shell执行的,对您的程序不(直接)可见。

./test string string < test.txt

意味着

  1. 打开test.txt以读取文件描述符1
  2. 使用参数./teststring运行string

在第2点运行的程序将继承父对象的文件描述符,因此其标准输入将连接到打开的文件句柄(而不是Shell的当前标准输入,它可能是您的终端,也可能是其他文件句柄)。

顺便说一句,您可能希望避免调用程序test,尽管只要您不忘记使用显式路径来调用它,这是无害的。

,

<符号将在某处(文本文件)插入信息,就像您自己键入信息一样。它通常与仅从标准输入中获取信息的命令一起使用。

例如(使用tr):

tr '[A-Z]' '[a-z]' < fileName.txt > fileNameNew.txt

上面的示例会将fileName.txt的内容插入到tr的输入中,并将结果输出到fileNameNew.txt

根据this page改编的答案。 有关所有符号的类似信息,请使用this page

本文链接:https://www.f2er.com/3057383.html

大家都在问