在apue第三章中的文件共享
Unix系统支持在不同的进程间共享打开的文件,内核使用三种数据结构表示打开的文件。
1:每个进程在进程表中都有一个记录项,记录项中包括一张进程打开文件的描述符表。每个文件描述符对应一个打开的文件。与每个文件描述符相关联的是
a:文件描述符标志
b:指向一个文件表项的指针
2:内核为所有的打开文件维持一张文件表,每个文件表项包括:
a:文件状态标志
b:当前文件偏移量
c:指向该文件的c节点表项的指针
3:每个打开文件都有一个v字节点结构,v节点包括很多东西(不细说)
如果一个进程打开两个文件,情况就像下图一样。
每个打开的文件都在进程的记录项中,记录项中有指向文件表的指针。文件表指向文件的v节点。
当一个文件被两个进程打开时。如下图
每个进程都有自己的记录表,对应自己进程的文件表,文件表中有自己进程对与文件的偏移量。但是所有进程打开的同一个文件都对应同一个v节点。
当读写文件的时候,都查询自己文件表中所包含的文件偏移量。当用O_APPEND标志打开一个文件,则每次读写的时候,都将文件表项中的当前文件偏移量设置为i节点中的文件偏移量。
举个例子:当进程a打开文件,然后设置偏移量为1500(文件结尾),b再打开文件,设置偏移量为1500。a再写入100这时候文件偏移量变成1600.。b这时候再写的时候,扔就按照偏移量1500来写。
如果打开的时候加上O_APPEND标志就,b先设置文件偏移为1600再写入。
分享到:
相关推荐
1、samba服务器 Windows与Linux文件共享 (主局域网) 1.1samba服务器介绍 1.2samba服务的启动和进程 1.3Samba 配置 1.4samba服务器端常用命令 1.5Samba应用示例一:linux用户在window端访问宿主目录 1.6Samba应用...
window 与 Linux文件共享
Windows和Linux间有很多文件共享的方式,这里总结了一下。假设你的Host计算机是Windows,Guest是Linux
实现Windows与VMware下Linux的文件共享实现Windows与VMware下Linux的文件共享实现Windows与VMware下Linux的文件共享实现Windows与VMware下Linux的文件共享
Linux 文件共享Linux 文件共享Linux 文件共享
linux 文件共享 samba 服务共享
Windows玩转Linux文件共享.pdf
虚拟机Linux文件共享.pdf
winscp.exe windows与 linux文件共享,能自由拖拉文件到不同文件系统中,能同步相同目录下的文件
linux文件共享夹 希望对学习者有所帮助
简单实现Windows和Linux文件共享
Samba实现Windos与linux文件共享
vmware-tools-distrib 虚拟机linux文件共享,很简单就可以实现文件的转移
局域网Linux文件共享服务器策略.pdf
linux与windows共享文件目录,个人初学是经过各种实验摸索整理出来。
帮助你快速实现ubuntu下用samba实现windows与linux文件共享,傻瓜化文档,千人验证。
Linux 文件共享学习 很不错 要看哦 一定要看
linux设置共享文件,基于Samba的Windows Linux 文件共享方法
samba,sudo apt-get install samba。Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成。SMB(Server Messages Block,信息服务块)