具有不同访问模式 C++ 的多个指向同一文件的指针

And*_*rds 2 c++ file mode

是否可以让多个 FILE * s 指向具有不同访问模式的同一个文件?例如

假设我有fopen("File1.bin","wb",fp1)并且我执行写操作并且没有使用 fclose 关闭文件我调用fopen("File1.bin","rb",fp2)并尝试对其使用写操作。这应该失败。但是当我使用不同的访问模式时,fp2 仍然会向它写入内容。为什么?

Ric*_*ges 5

fopen() 打开一个文件流,它是一个文件的抽象。当然,文件句柄是在下面打开的,但是通过不同的句柄(甚至可能在不同的进程中)同时访问同一个文件是完全可以接受的。

文件是共享资源。