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

时间:2015-10-05 19:25:27

标签: c command-line-arguments fopen

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

#include <stdio.h>

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

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

    return 0;
}

3 个答案:

答案 0 :(得分:4)

input的返回值是一个文件句柄,它类似于稍后可以用来与文件交互的标记。您可以将fopen()传递给input1fgets()等功能,具体取决于您下次要对文件执行的操作。

文件的内容不会被fread()

复制到任何地方

答案 1 :(得分:1)

fopen函数打开文件文件名的I / O流,并返回指向流的指针。 所以,在你的陈述中:

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

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

然后,您可以使用文件指针从文件中读取数据。例如:

char c = getc(input1);

答案 2 :(得分:-1)

在此处阅读文件处理API。

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