fclose和close之间的区别

Fla*_*ash 7 c posix file file-descriptor

如果我fopen一个文件,什么叫之间的区别fclose还是close我应该使用哪一个?

如果分叉的孩子也可以访问该文件,他们完成文件后应该怎么做?

Gan*_*har 10

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

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

像的功能fopen(),fclose()等等是C标准功能,而其它类别open(),close()等等是POSIX特定的.这意味着代码书面open(),close()等不是标准的C代码,并因此非便携式的.而用编写的代码fopen(),fclose等等是一个标准的代码,并且可以在任何类型的系统被移植.

我应该使用哪一个?

这取决于您打开文件的方式.如果您打开一个文件fopen(),您应该使用fclose(),如果您打开文件open(),您应该使用close().

如果分叉的孩子也可以访问该文件,他们完成文件后应该怎么做?

这还取决于您fork()拨打电话的位置:打开文件之前或打开文件之后.

请参阅:fork()时是否共享文件描述符?

见:man fcloseman close