复制文件描述符后新旧文件描述符特点|学习笔记

简介: 快速学习复制文件描述符后新旧文件描述符特点

开发者学堂课程【物联网开发- Linux 高级程序设计全套视频复制文件描述符后新旧文件描述符特点 】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/660/detail/11032


复制文件描述符后新旧文件描述符特点

 

复制文件描述符后新旧文件描述符的特点:

使用dup或dup2复制文件描述符后,新文件描述符和旧文件描述符指向同一个文件,共享文件锁定、读写位置和各项权限。

例如:

通过新的文件描述符写入文件10个字节,读写位置偏10个字节之后。再通过旧的文件描述符写入,偏10个字节后写入。

当关闭新的文件描述符时,通过旧文件描述符仍可操作文件。

当关闭旧的文件描述时,通过新的文件描述符仍可可操作文件。

相关文章
|
7月前
|
Unix 索引 Windows
硬链接和符号链接的不同点
【5月更文挑战第20天】硬链接和符号链接的不同点
487 1
|
7月前
|
算法 Linux C语言
【Linux系统编程】深入理解Linux目录操作:文件夹位置指针操作函数(telldir,seekdir,rewinddir)
【Linux系统编程】深入理解Linux目录操作:文件夹位置指针操作函数(telldir,seekdir,rewinddir)
97 0
|
7月前
|
存储 Unix Linux
Linux文件描述符和打开文件之间的关系
文件描述符和打开的文件之间似乎呈现出一一对应的关系。然而,实际并非如此。多个文件描述符指向同一打开文件,这既有可能,也属必要。这些文件描述符可在相同或不同的进程中打开。要理解具体情况如何,需要查看由内核维护的 3 个数据结构。进程级的文件描述符表。系统级的打开文件表。文件系统的 i-node 表。上述讨论揭示出如下要点。两个不同的文件描述符,若指向同一打开文件句柄,将共享同一文件偏移量。
68 0
Linux文件描述符和打开文件之间的关系
|
7月前
|
Unix Linux API
Linux文件描述符和文件指针互转
文件描述符在形式上是一个非负整数。实际上,它是一个索引值,指向内核为每一个进程所维护的该进程打开文件的记录表。当程序打开一个现有文件或者创建一个新文件时,内核向进程返回一个文件描述符。在程序设计中,一些涉及底层的程序编写往往会围绕着文件描述符展开。但是文件描述符这一概念往往只适用于UNIX、Linux这样的操作系统。FILE *指针变量标识符;其中FILE应为大写,它实际上是由系统定义的一个结构,该结构中含有文件名、文件状态和文件当前位置等信息。在编写源程序时不必关心FILE结构的细节。
68 0
|
存储 API Windows
驱动开发:内核遍历文件或目录
在笔者前一篇文章`《驱动开发:内核文件读写系列函数》`简单的介绍了内核中如何对文件进行基本的读写操作,本章我们将实现内核下遍历文件或目录这一功能,该功能的实现需要依赖于`ZwQueryDirectoryFile`这个内核API函数来实现,该函数可返回给定文件句柄指定的目录中文件的各种信息,此类信息会保存在`PFILE_BOTH_DIR_INFORMATION`结构下,通过遍历该目录即可获取到文件的详细参数,如下将具体分析并实现遍历目录功能。
1444 0
【文件指针+文件顺序读写操作函数】(1)
1.文件的打开和关闭 1.1 什么是文件指针? 每个被使用的文件都在内存中开辟了一个相应的文件信息区,用来存放文件的相关信息(如文件的名 字,文件状态及文件当前的位置等)。这些信息是保存在一个结构体变量中的。该结构体类型是有系统 声明的,取名FILE.
【文件指针+文件顺序读写操作函数】(2)
1.文件的打开和关闭 1.1 什么是文件指针? 每个被使用的文件都在内存中开辟了一个相应的文件信息区,用来存放文件的相关信息(如文件的名 字,文件状态及文件当前的位置等)。这些信息是保存在一个结构体变量中的。该结构体类型是有系统 声明的,取名FILE. 假如:我们要操作一个文件,名为text.txt ,首先要打开文件,打开文件的同时,操作系统会自动为该文件创建一个文件信息区,专门用来记录该文件的信息。
|
物联网 Linux 开发者
Dup 文件描述符复制|学习笔记
快速学习 Dup 文件描述符复制
Dup 文件描述符复制|学习笔记
|
物联网 Linux 开发者
Dup2 文件描述符复制|学习笔记
快速学习 Dup2 文件描述符复制
|
Linux
linux下两个进程可以同时打开同一个文件吗?返回的文件描述符一样吗?
linux下两个进程可以同时打开同一个文件吗?返回的文件描述符一样吗? 一:结论 1.两个进程中分别产生生成两个独立的fd 2.两个进程可以任意对文件进行读写操作,操作系统并不保证写的原子性 3.进程可以通过系统调用对文件加锁,从而实现对文件内容的保护 4. 任何一个进程删除该文件时,另外一个进程不会立即出现读写失败 5.两个进程可以分别读取文件的不同部分而不会相互影响 6.一个进程对文件长度和内容的修改另外一个进程可以立即感知   二:文件描述符与打开文件的关系? 内核中,对应于每个进程都有一个文件描述符表,表示这个进程打开的所有文件。
3023 0