FILE * pFile;
pFile = fopen ("myfile.txt","r");
if (pFile == NULL)
{ some code }
pFile = fopen ("myfile.txt","r")
在这种情况下,将分配给pFile
什么?因为pFile
是一个指针,它只存储另一个变量的地址。我想知道“myfile.txt”是一个字符串吗?那么是不是 pFile = 存储字符串“myfile.txt”的数组地址?
FILE * pFile;
pFile = fopen ("myfile.txt","r");
if (pFile == NULL)
{ some code }
pFile = fopen ("myfile.txt","r")
在这种情况下,将分配给pFile
什么?因为pFile
是一个指针,它只存储另一个变量的地址。我想知道“myfile.txt”是一个字符串吗?那么是不是 pFile = 存储字符串“myfile.txt”的数组地址?
它指向一个FILE
对象。细节取决于实现,不会影响用户代码。但它通常是一种结构,其中包括对特定于操作系统的文件处理机制的各种引用。
这是一个不透明指针的例子。
看看:http ://www.cplusplus.com/reference/cstdio/fopen/
如果文件成功打开,该函数返回一个指向 FILE 对象的指针,该对象可用于在将来的操作中识别流。否则,返回一个空指针。
它是一个指向FILE
结构的指针,其中包含操作系统代表您访问文件所需的所有信息。
你不应该fopen
在 C++ 中使用;你应该使用 astd::ifstream
代替。
从 fopen 手册页:
SYNOPSIS
#include <stdio.h>
FILE *fopen(const char *path, const char *mode);
FILE *fdopen(int fd, const char *mode);
FILE *freopen(const char *path, const char *mode, FILE *stream);
Feature Test Macro Requirements for glibc (see feature_test_macros(7)):
fdopen(): _POSIX_C_SOURCE >= 1 || _XOPEN_SOURCE || _POSIX_SOURCE
DESCRIPTION
The fopen() function opens the file whose name is the string pointed to by path and associates a stream with it.
所以返回的指针用于访问文件的流。