如何用 fopen 打开一个指针?

How to open a pointer with fopen?

通常我们都是这样打开文件的

FILE *student_file;

student_file = fopen("five_students", "rb");

现在我有了一个以图像指针作为参数的函数。我想打开图像文件并阅读里面的内容。我尝试如下打开它,但它不起作用。我该如何解决?

void read_metadata(FILE *image, int *pixel_array_offset, int *width, int *height) {
     FILE* img = fopen(*image, "rb");
}

如果您在调用 read_metadata 时已经打开了参数 image(即,如果先前对 fopen 的调用在调用代码中成功),则不需要再次调用 fopen。它已经开放了。此外,该代码甚至不应该被编译,因为 fopenchar * 字符串作为其第一个参数,而不是 FILE.

只需立即在 image 上使用文件 I/O 函数(freadfgetsfscanf 等)。