fopen 以 stdin 作为文件名参数

发布于 2024-11-04 00:13:25 字数 159 浏览 1 评论 0原文

我被要求编写一个程序,基本上解析给它的文件,并重定向标准输入,如下所示:
myProg 参数1 参数2 参数3 < theFileToParse

我正在尝试使用 fopen 函数来打开给定的文件,但我不明白应该在“const char * filename”参数中给出什么。

I was requested to write a program the basically parses the file given to it, with redirecting the stdin, like this:
myProg param1 param2 param3 < theFileToParse

I'm trying to use the fopen function in order to open the given file, but i don't understand what should i give it in the 'const char * filename' argument.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

冷情妓 2024-11-11 00:13:29

您不需要打开该文件。您的程序有一个名为 stdin 的特殊值,它包含进程标准输入流的句柄。您可以像使用文件句柄一样使用它,例如:

int c = fgetc( stdin );

或:

fread( somebuffer, somesize, 1, stdin );

You don't need to open the file. Your program has a special value called stdin which contains a handle to the process's standard input stream. You can use this just as you would a file handle, for example:

int c = fgetc( stdin );

or:

fread( somebuffer, somesize, 1, stdin );
时间海 2024-11-11 00:13:29

您根本不应该打开任何内容,因为标准输入已经重定向,因此您可以简单地将此标准输入句柄与标准文件函数一起使用,即:

while (fread(buf, 1, 1024, stdin) != 0) { // Read the data from input
  // Do something with data stored in buffer
}

You should not open anything at all, since stdin is already redirected, therefore you can simply use this stdin handle with standard file functions, i.e.:

while (fread(buf, 1, 1024, stdin) != 0) { // Read the data from input
  // Do something with data stored in buffer
}
花落人断肠 2024-11-11 00:13:29

使用 freopen。

来自 Unix 手册页:

#include < stdio.h >

     FILE *freopen(const char *filename, const char  *mode,  FILE
     *stream);

use freopen.

From Unix man page:

#include < stdio.h >

     FILE *freopen(const char *filename, const char  *mode,  FILE
     *stream);

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文