gpt4 book ai didi

c - 有没有更好的方法来管理C中的文件指针?

转载 作者:行者123 更新时间:2023-11-30 17:20:42 25 4
gpt4 key购买 nike

是否最好在使用该文件的每个函数的开头和结尾处使用 fopen()fclose() ,还是传递该文件更好指向每个函数的指针?或者甚至将文件指针设置为与文件相关的结构的元素。我有两个项目正在进行,每个项目都使用一种方法(因为我在开始第一个项目后考虑传递文件指针)。当我说更好时,我指的是速度和/或可读性。最佳实践是什么?

谢谢!

最佳答案

这要看情况。你当然应该记录什么是 fopen(3) 函数-ing FILE 句柄以及期望的函数fclose(3)它。

您可以将 FILE* 放入 struct 中,但您应该就谁以及何时应该读取和/或写入和关闭文件有一个约定。

请注意,打开的文件是进程(=您正在运行的程序)中的一些扩展资源。顺便说一句,它也是 operating systemfile system具体的。并且FILE句柄被缓冲,参见fflush(3) & setvbuf(3)

在小型系统上,fopen-ed 文件句柄的最大数量可能只有几十个。在当前的 Linux 桌面上,一个进程可能会打开数千个 file descriptors (内部 FILE 与其缓冲区一起保存)。无论如何,它都是一个相当珍贵和稀缺的资源(在 Linux 上,您可以使用 setrlimit(2) 来限制它)

请注意,磁盘 IO 非常慢。 CPU。

关于c - 有没有更好的方法来管理C中的文件指针?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28473455/

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