gpt4 book ai didi

c - 文件结构存储在程序中的位置

转载 作者:行者123 更新时间:2023-12-02 05:59:07 25 4
gpt4 key购买 nike

#include <stdio.h>

FILE *openfile()
{
FILE *fp1;
fp1 = fopen("test.c","r");
return fp1;
}

int main()
{
char c;
FILE *fp;
int a = 10;
int b = 1000 - a;

printf("Hello\n");

fp = openfile();

fscanf(fp, "%c", &c);
fclose(fp);

printf("%c", c);
}

在上面的程序中,我在一个函数中打开一个文件描述符并将它传递给另一个函数。这工作正常。

fp1 在函数 openfile() 中被局部声明。因为我们正在传递地址,所以我可以从主函数使用文件指针结构。

我的问题是 FILE 结构存储在哪里?该结构的范围是什么?

最佳答案

它可以存储在任何地方,这取决于运行时库的实现。

通常我希望 fopen() 执行 malloc(),即在堆上分配 FILE 结构,但这不是要求。例如,如果它旨在避免堆分配,那么它也可以分配预分配的静态结构实例。它只需要支持 FOPEN_MAX 个并发文件(必须至少为 8 个)。

关于c - 文件结构存储在程序中的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34794384/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com