为什么没有真正的文件描述符克隆机制尽可能,就像它是用于磁盘文件一样。真实文件描述符克隆
POSIX:
从这些系统调用之一,老 新文件描述符成功返回后可以互换使用。他们引用 相同的打开文件描述(见打开(2)),因此共享文件偏移量 和文件状态标志;例如,如果在其中一个描述符上使用lseek(2)将文件偏移量修改为 ,则另一个偏移量也将更改为 。
的Windows:
重复的手柄是指相同的对象原装手柄。因此,对象的任何更改都会反映在两个句柄中。例如,如果复制文件句柄,则两个句柄的当前文件位置始终相同。要使文件句柄具有不同的文件位置,请使用CreateFile函数创建共享对同一文件的访问权限的文件句柄。
原因有克隆原始:
当处理一个文件存档,我想在档案中的每个文件必须是独立访问。文件归档应该有点像虚拟文件系统。
文件类型检查。克隆文件偏移可以在不影响原始位置的情况下读取文件的一小部分。
我认为它存在:dup()。 http://man7.org/linux/man-pages/man2/dup.2.html yes,dup()共享相同的偏移量,但仍保持不同的描述符标志。或者你总是可以将文件映射到两个不同的描述符,并使用不同的描述符偏移来解决你的问题? –
@PeterTeoh其实,我想分享旗帜但不是抵消 – user877329