【发布时间】:2014-06-13 03:15:13
【问题描述】:
是否可以有多个 FILE * 以不同的访问模式指向同一个文件?例如
假设我有fopen("File1.bin","wb",fp1) 并且我执行写操作并且没有使用 fclose 关闭文件我调用fopen("File1.bin","rb",fp2) 并尝试对其使用写操作。这应该失败。但是当我使用不同的访问模式时,fp2 仍然会向它写入内容。为什么?
【问题讨论】:
是否可以有多个 FILE * 以不同的访问模式指向同一个文件?例如
假设我有fopen("File1.bin","wb",fp1) 并且我执行写操作并且没有使用 fclose 关闭文件我调用fopen("File1.bin","rb",fp2) 并尝试对其使用写操作。这应该失败。但是当我使用不同的访问模式时,fp2 仍然会向它写入内容。为什么?
【问题讨论】:
fopen() 打开一个文件流,它是一个文件的抽象。当然,文件句柄是在下面打开的,但是通过不同的句柄(甚至可能在不同的进程中)同时访问同一个文件是完全可以接受的。
文件是共享资源。
【讨论】: