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

有没有更好的方法来管理C中的文件指针?,c,file,pointers,C,File,Pointers,在使用该文件的每个函数的开头和结尾使用fopen和fclose更好,还是将文件指针传递给这些函数中的每个函数更好?甚至可以将文件指针设置为与文件相关的结构的元素。 我有两个项目正在进行中,每个项目都使用一种方法,因为我在开始第一个项目后考虑传递文件指针。 当我说更好时,我指的是速度和/或可读性。什么是最佳实践 谢谢大家! 视情况而定。当然,您应该记录什么函数正在调用文件句柄,以及什么函数期望使用它 您可以将文件*放在一个结构中,但是您应该有一个关于读取和/或写入并关闭文件的人和时间的约定 请注意

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


谢谢大家!

视情况而定。当然,您应该记录什么函数正在调用文件句柄,以及什么函数期望使用它

您可以将文件*放在一个结构中,但是您应该有一个关于读取和/或写入并关闭文件的人和时间的约定

请注意,打开的文件是进程=您正在运行的程序中的一些扩展资源。顺便说一句,这也是一个简单而具体的问题。并缓冲文件句柄,请参见&

在小型系统上,打开的文件句柄的最大数量可能只有几十个。在当前的Linux桌面上,一个进程可能会打开几千个内部文件及其缓冲区。在任何情况下,它在Linux上都是一个非常宝贵和可怕的资源,您可以使用


请注意,磁盘IO的速度非常慢(w.r.t.CPU)。

这取决于您如何使用文件,以及您需要多久读/写一次,以及许多其他因素。这似乎是一个相当广泛的、基于观点的问题。一般来说,我会说最好打开一次文件,用它做任何你需要做的事情,然后在完成后关闭它,但是如果没有这个问题的实际背景,我真的不能说什么是最好的-可能有这样的情况,一个文件只需要很少访问,在这种情况下,按需开放的政策可能会更好。