linux – 每个进程或系统范围内的文件对象是本地的吗?
作为
Linux设备驱动程序开发人员,我认为文件对象是每个进程的本地结构,并且其地址在fd表中可用于相应的fd.但当我在Michale Kerrisk的Linux编程界面中遇到5.6节时说明了这一点
我被迷惑了…请帮助我提高理解力. 解决方法
每个进程都有自己的文件描述符表,每次打开文件()时都会生成一个单独的文件描述.那里有理智!
例外情况是文件描述符在进程内(通过dup())或跨进程(通过一个进程fork()使用所有相同的FD复制,或者通过UNIX域套接字传递文件描述符) ).当发生这种情况时,两个描述符最终会彼此共享一些属性,包括偏移量. 这不一定是坏事.例如,这意味着两个写入共享文件描述符的进程最终都不会覆盖彼此的输出.但它有时会产生意想不到的结果.但是,如果不了解它,通常不会出现这种情况. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |