简单理解描述文件描述符
先明确一个概念:文件描述符是一个非负整数,是确定一个文件的一种手段:
下面慢慢 从外到里 一步一步的接近文件描述符
首先进程在运行的时候会打开多个文件,所以用于描述进程的pcb里面一定有文件描述符
//下面我们来到了pcb
而pcb包含了一个结构体 叫做 task_struct而这个task_struct结构体里面包含内容是如图
所以task_struct里面是有一条信息 是用来描述打开文件信息 而这个指针的类型是 files_struct
而这个files_struct里面包含了一个文件数组 而文件描述符就是这个数组的下标 并且这里对数组下标使用有一个要求 比如使用了 0 1 2 当没有使用0 以后 下一次使用的时候会给你分配0下标而不是下标3
所以到了现在很明确的知道,为什么文件描述符是一个非负整数。
下面来前后贯通一下 有一个数组 数组的每一个元素的类型是文件结构体 而我们的进程是通过这个数组来管理进程所打开的文件 ,而文件描述符是这个数组的下标,那么就可以得到一个结论,在一个进程内 使用一个文件描述符(数组下标)可以在文件数组里面找到一个具体的文件,那么就可以对这个文件进行操作。
所以文件描述符在同进程内是唯一的,在2个不同的进程中可能会出现相同的文件描述符,而指向的是不同的文件。
简单理解描述文件描述符相关推荐
- 简单理解DLL文件是什么,如何使用?
DLL文件是什么? DLL文件是动态链接库的缩写,可以在多种程序中使用. 如何编写DLL文件 可以使用C++.C#.VB之类的语言编写,其中包含了一个或者多个函数,以供其他程序调用. 例如,如何在Py ...
- linux dup用法,Linux:dup和dup2文件描述符及函数解析,dupdup2
Linux:dup和dup2文件描述符及函数解析,dupdup2 一.文件描述符 1.1 文件描述符概念 我们知道在Linux下一切皆文件,因此我们需要一个东西对这些文件进行管理,此时就需要文件描述符 ...
- Linux下利用文件描述符恢复的成功失败实验
数据误删除是作为初级运维人员常常遇到的"低级错误",一些有经验的老手有时也在疲劳.不冷静的情况下"马失前蹄".一旦误删除数据文件,尽快采用影响最小.最迅速的手段 ...
- iOS 理解证书与描述文件
简单的理一下iOS应用打包用到的Certificate与Provision Profile的关系 1.Certificate --证书 1.1证书是什么? 百度百科是这么解释的: 由此,知道证书是由权 ...
- 如何用python画帆船_python学习笔记6——文件操作来生成船只侧面图像的描述文件...
最近在做船只检测的工作需要大量的正样本,之前的一些样本各种形态的船只都有,这一次训练分类器希望使用只含船只侧面的图像,这样检测船的侧面的成功率可能会提高一点.这样就需要大量的船只侧面图像,并生成描述文 ...
- 谈谈自己对文件描述符的理解
文件描述符其实和C语言的的FILE*差不多,就是用一个整数来表述一个打开的文件.而C语言中使用的是指针来描述的.下面的例子是摘自上一遍转载的文章中的: 1 2 3 4 5 6 7 8 9 10 11 ...
- ftpclient读取服务器文件能获得文件名文件大小0_理解Linux的文件描述符FD与Inode
FD 文件描述符 一.概念 Linux 系统中,把一切都看做是文件,当进程打开现有文件或创建新文件时,内核向进程返回一个文件描述符,文件描述符就是内核为了高效管理已被打开的文件所创建的索引,用来指向被 ...
- linux中文件描述符fd和文件指针flip的理解
整理自:http://www.cnblogs.com/Jezze/archive/2011/12/23/2299861.html 简单归纳:fd(file descriptor)只是一个整数,在ope ...
- 如何理解Linux shell中的“2>1”(将文件描述2(标准错误输出)的内容重定向到文件描述符1(标准输出))(尼玛>符号竟然不支持搜索,害我搜搜不到,只能搜)
文章目录 前言 有何妙用 如何理解 总结 前言 有时候我们常看到类似这样的脚本调用: ./test.sh > log.txt 2>&1 这里的2>&1是什么意思?该如 ...
最新文章
- r2dbc_使用Spring Data R2DBC进行异步RDBMS访问
- PHP面向对象2之变量、方法
- csvn(apache+svn)管理工具搭建
- 避免内存泄漏 - C++快速入门38
- PDA服务器显示响应为空,jmeter 状态码为200,但是响应数据为何为空
- sqlalchemy query
- Tensorflow卷积神经网络识别MINST手写数字
- java cancel_java – Future.cancel(boolean)方法的实用程序
- 网络编程 socket详解 TCP socket和UDP socket
- 文件内存映射(一):它是什么
- 蓝牙小票机php接口,Android蓝牙打印小票,仿美团外卖小票打印
- 使用ZYNQ实现单LUT内容的动态修改(一)PL端OOC设计流程
- python数据类型的转换
- 10项最佳在线免费学习工具
- itunes一直显示正在验证iphone恢复_换新iPhone了,四个方法轻松解决新旧iPhone的资料迁移...
- Flink数据流编程模型(Dataflow Programming Model)
- 中国压辊行业市场供需与战略研究报告
- 微型计算机接口技术学啥的,微型计算机接口技术
- C语言字符串中使用宏替换
- 题目:请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续判断第二个字母。