如何获取 FILE* 实例的值?
How I get the value of a FILE* instance?
我正在尝试检查 fopen() returns 的数据。但是我读不出指针指向的数据
#include <stdio.h>
int main( void )
{
FILE * file = fopen("file.txt");
printf( "%#llx,\n", (long long) (*file) );
}
使用 gcc,我在编译时遇到此错误:
6:5: error: aggregate value used where an integer was expected
6 | printf( "%#llx,\n", (long long) (*file) );
| ^~~~~~
clang 抛出
6:37: error: operand of type 'FILE' (aka 'struct _IO_FILE') where arithmetic or pointer type is required
printf( "%#llx,\n", (long long) (*file) );
^~~~~~~
那么为什么转换失败,如何解决这个问题?
你不能打印出这样的值。
FILE*
是一个指针。你可以打印出指针指向的地址,但我认为你不想要那样。
指针指向的地址包含类型为 struct _IO_FILE
.
的结构
您无法打印结构。但是,您可以查找此结构的声明并打印出结构的成员。如果您想查看此结构的声明,请参阅 this
我正在尝试检查 fopen() returns 的数据。但是我读不出指针指向的数据
#include <stdio.h>
int main( void )
{
FILE * file = fopen("file.txt");
printf( "%#llx,\n", (long long) (*file) );
}
使用 gcc,我在编译时遇到此错误:
6:5: error: aggregate value used where an integer was expected
6 | printf( "%#llx,\n", (long long) (*file) );
| ^~~~~~
clang 抛出
6:37: error: operand of type 'FILE' (aka 'struct _IO_FILE') where arithmetic or pointer type is required
printf( "%#llx,\n", (long long) (*file) );
^~~~~~~
那么为什么转换失败,如何解决这个问题?
你不能打印出这样的值。
FILE*
是一个指针。你可以打印出指针指向的地址,但我认为你不想要那样。
指针指向的地址包含类型为 struct _IO_FILE
.
您无法打印结构。但是,您可以查找此结构的声明并打印出结构的成员。如果您想查看此结构的声明,请参阅 this