在C中,在硬盘驱动器上没有文件的情况下写入文件steam

Write to a file steam without a file existing on the hard drive in C

本文关键字:文件 情况下 steam 硬盘驱动器      更新时间:2023-10-16

这在C语言中可能吗?甚至是C++?我更想知道C.

例如,假设我有一个读取文本文件并对其执行某些操作的函数。如果用户没有指定输入文本文件,而我想将该函数用于stdin是否可以将stdin写入文件流,就好像它来自读取的文件一样,这样它就可以用在通常只接收输入文件的方法中?

当然,解决这个问题的一种方法是,我可以获取stdin,将其写入一个临时文件,然后将该临时文件传递给通常会获取输入文件的函数。我在网上搜索并询问了大学的导师,但没有得到任何解决方案。有人做到过这一点吗?

如果你的函数有一个原型,比如

void add(FILE *fp,<rest of the argument>)
{
}

你可以直接通过

add(stdin,<rest of the arguments>);

因为stdin的类型是FILE *

FILE *stdin;

不需要从stdin读取并将其存储在某个文件中,然后将该文件指针发送到API。

STDIN会自动为您打开,所以只需从STDIN中读取即可。有几种方法可以做到这一点,但基本上STDIN是文件描述符0。

int filedes = 0;
if(/* argv[1] is a file name */)
    filedes = open(argv[1], flags);
read(filedes, bufr, size);
相关文章: