当我将 fopen() 函数分配给变量时,它会做什么?

What does the fopen() function do when I assign it to a variable?

我是一名初级程序员,从事的项目需要我的代码从输入文件中读取字符,在不更改原始文件的情况下对其进行操作,然后将修改后的版本打印到输出文件中。为此,我需要在程序中的某个时刻使用 fopen() 函数,但我很好奇:这里到底发生了什么?输入文件的内容是否复制到变量input1?

#include <stdio.h>

int main(int argc, char *argv[])
{
    FILE *input1;

    input1 = fopen(argv[1], "r");

    return 0;
}

fopen()的return值是一个文件handle,它就像一个token,你以后可以用它来与文件交互。您可以将 input1 传递给 fgets()fread() 等函数,具体取决于接下来要对文件执行的操作。

fopen()没有将文件内容复制到任何地方。

fopen 函数为 I/O 文件文件名打开一个流,returns 一个指向流的指针。 所以,在你的声明中:

input1 = fopen(argv[1], "r");

fopen()打开文件argv[1]进行读取,函数返回的地址赋值给input1.This不涉及复制文件内容

然后您可以使用文件指针从 file.for 示例中读取数据:

char c = getc(input1);

在此处阅读文件处理 API。

http://www.thegeekstuff.com/2012/07/c-file-handling/