0

我正在用 C 语言编写一个程序,该程序需要从文件中读取行。我目前正在为此目的使用 fopen() 。

这适用于我的程序。

./myProgram /path/to/file

但是,我无法读取这样的输入:

./myProgram - <<END
This
is
some
nameless
file
END

所以我猜-是在 2 个 END 之间包含内容的无名文件,但我的程序会给出与在这种情况下未找到的文件相关的错误,这意味着 fopen() 返回了一个空指针。

我想知道这里发生了什么?

4

1 回答 1

0

你是对的。根据fopen's man, fopen 需要 aconst char*打开文件。如果您只是将 argv 传递给 fopen,“这是一些无名文件”不是文件路径,因此fopen将无法找到您的文件。

如果您想从标准输入读取,您可以使用fgets或任何其他带有参数的读取函数,FILE *stream您可以将stdin文件流传递给该函数。

于 2013-04-30T00:17:43.580 回答