什么将被分配到指针pfile?

时间:2013-03-12 09:07:37

标签: c

FILE * pFile;
pFile = fopen ("myfile.txt","r");
if (pFile == NULL)
{ some code }

pFile = fopen ("myfile.txt","r")

在这种情况下,将分配给pFile的内容是什么?因为pFile是一个只存储另一个变量的地址的指针。我想知道“myfile.txt”是一个字符串吗?就是这样 pFile =存储字符串“myfile.txt”的数组的地址?

4 个答案:

答案 0 :(得分:2)

它指向FILE个对象。细节与实现有关,不会影响用户代码。但它通常是一个包含对特定于操作系统的文件处理机制的各种引用的结构。

这是opaque pointer的一个例子。

答案 1 :(得分:1)

看看:http://www.cplusplus.com/reference/cstdio/fopen/

如果文件成功打开,该函数将返回一个指向FILE对象的指针,该对象可用于在将来的操作中标识流。 否则,返回空指针。

答案 2 :(得分:0)

它是指向FILE结构的指针,其中包含操作系统代表您访问文件所需的所有信息。

你不应该在C ++中使用fopen;你应该使用std::ifstream代替。

答案 3 :(得分:0)

来自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.

因此返回的指针用于访问文件的流。