解决方法
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()打开文件,则应使用close().
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?
见:男子fclose和男子关闭