gpt4 book ai didi

c - fclose 和 close 的区别

转载 作者:太空狗 更新时间:2023-10-29 17:08:47 26 4
gpt4 key购买 nike

如果我fopen 一个文件,调用fcloseclose 有什么区别,我应该使用哪个?

如果 fork 的 child 也可以访问该文件,当他们完成文件后应该做什么?

最佳答案

fclose() 是与文件流相关的函数。当您在 fopen() 的帮助下打开文件并将流分配给 FILE *ptr 时。然后您将使用 fclose() 关闭打开的文件。

close() 是一个与文件描述符 相关的函数。当您在 open() 的帮助下打开文件并将描述符分配给 int fd 时。然后您将使用 close() 关闭打开的文件。

fopen()fclose() 等函数是C 标准函数,而另一类open( )close() 等是特定于 POSIX 的。这意味着使用 open()close() 等编写的代码不是标准的 C 代码,因此不可移植。而使用fopen()fclose等编写的代码是标准代码,可以移植到任何类型的系统上。

which one should I use?

这取决于您打开文件的方式。如果你用fopen()打开文件,你应该使用fclose(),如果你用open()打开文件,你应该使用关闭()

If forked children have access to the file as well, what should they do when they are finished with the file?

这还取决于您调用 fork() 的位置:打开文件之前还是打开文件之后。

参见:Are file descriptors shared when fork()ing?

参见:man fcloseman close

关于c - fclose 和 close 的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19564797/

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