在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再写入。
分享到:
相关推荐
Linux 文件共享服务是将Linux系统中的文件和目录暴露给网络中的其他系统,以便进行数据交换和协作。在Linux中,有几种主要的文件共享服务,包括Samba、FTP(使用vsftpd)以及NFS(网络文件系统)。下面将详细介绍...
Window 与 Linux 文件共享 在本文中,我们将讨论使用 VMware 共享文件夹功能来实现 Window 和 Linux 之间的文件共享。这种方法无需任何网络相关设置,不使用任何网络协议,host 和 ghost 可以是 Linux 和 Windows ...
Linux 文件共享 samba 配置 Linux 文件共享是指在 Linux 系统中,使用 samba 服务来实现文件共享的功能。samba 是一个免费的开源软件,可以将 Linux 文件系统共享给其他操作系统的计算机。 在 Linux 系统中,samba...
《Windows玩转Linux文件共享》这篇文档主要介绍了如何在Windows操作系统和Linux操作系统之间实现文件共享,特别是通过Samba工具进行跨平台的文件访问。Linux操作系统因其稳定性和安全性日益受到企业和个人用户的青睐...
虚拟机Linux文件共享 虚拟机Linux文件共享是指在虚拟机中使用Linux系统,并将文件共享到物理PC中,这样可以方便地在虚拟机和物理PC之间共享文件。下面是虚拟机Linux文件共享的详细教程: 一、安装VMware Tools 在...
### Windows与Linux文件共享:Samba的安装与配置详解 #### Samba简介 Samba是一款开源软件包,它能够使Linux或Unix系统实现与Microsoft Windows系统之间的文件、打印共享及某些级别的域控制功能。借助Samba,不同...
Windows和Linux间有很多文件共享的方式,这里总结了一下。假设你的Host计算机是Windows,Guest是Linux
【Linux 文件共享】是指在Linux操作系统中实现文件和目录在不同主机间共享的技术。Linux提供了多种文件共享方式,包括Samba服务器和NFS(Network File System)服务。 **Samba服务器**是专为Linux和Windows之间的...
"Linux 文件共享"则表明了Samba的主要功能是在Linux系统中实现文件共享,而"samba"则是这款软件的名称。 在描述中提到,“linux与Windows建立文件共享的源代码”,这表明Samba的核心功能是提供一个桥梁,使得Linux...
"ubuntu下用samba实现windows与linux文件共享" 在今天的IT时代中,文件共享已成为一个非常重要的需求,特别是在不同操作系统之间。今天,我们将讨论如何使用samba在ubuntu下实现windows与linux文件共享。 首先,...
winscp.exe windows与 linux文件共享,能自由拖拉文件到不同文件系统中,能同步相同目录下的文件
linux文件共享夹 希望对学习者有所帮助
简单实现Windows和Linux文件共享
局域网Linux文件共享服务器策略.pdf
3. **虚拟机中Linux文件共享的方法** 4. **配置虚拟机共享文件夹的步骤详解** #### 知识点详细解释 **1. 虚拟机概念与原理** - **定义**: 虚拟机是一种软件技术,可以在一个物理计算机上模拟多个计算机环境。 - **...
linux设置共享文件,基于Samba的Windows Linux 文件共享方法
samba,sudo apt-get install samba。Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成。SMB(Server Messages Block,信息服务块)