文件描述符概述|学习笔记

简介: 快速学习文件描述符概述

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

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


文件描述符概述

 

文件描述符是非负整数,是文件的标识。用来代表所打开的文件。

用户使用文件描述符(file descriptor)来访问文件,对文件进行读写。用 Read write 进行文件描述符的传送,从而进行操作。

利用 oprn 函数打开一个文件时,内核会返回一个文件描述符。

每个进程都有一张文件描述符的表。

文件描述符的作用域:

进程,在进程中,文件描述符是独一无二的,不同的进程文件描述符的值可能相同,但是可能代表打开不同的文件。

进程刚被创建时,标准输入、标准输出、标准错误输出设备文件被打开,对应的文件描述符0、1、2记录在表中。

在进程中打开其他文件时,系统会返回文件描述符表中最小可用的文件描述符,0为最小但是不可用,它是代表标准输入文件,并将此文件描述符记录在表中。

如下:

0

Stdin

1

stdout

2

stderr

3

Test.txt

其中,3个文件描述符默认被打开,0—标准输入设备文件,1—标准输出设备文件,2—标准错误输出设备文件,再去打开一个文件(test.txt),系统会为打开的文件分配一个文件描述符,此文件描述符是最小的而且可用—3。

在此进程中3代表test.txt。每一个进程都会有相应的表。每一个文件描述符对应一个文件。

注意:

Linux 中一个进程最多只能打 开NR_OPEN_DEFAULT(即1024)个文件,故当文件不再使用时应及时调用close函数关闭文件。

0,1,2是被默认打开的,所以最多还可以打开1021个文件,如果打开更多的文件,open就会出错,进程当中的文件描述符就会不够用。

相关文章
|
Web App开发 移动开发 JavaScript
JS - 微信浏览器(H5)语音录音插件(Recorder H5)
JS - 微信浏览器(H5)语音录音插件(Recorder H5)
3148 0
Flutter-解决Try catch出现异常:type ‘_TypeError‘ is not a subtype of type ‘Exception‘ in type cast
Flutter-解决Try catch出现异常:type ‘_TypeError‘ is not a subtype of type ‘Exception‘ in type cast
385 1
|
2月前
|
机器学习/深度学习 数据采集 人工智能
100_RLHF(人类反馈强化学习)原理与实践
在大型语言模型(LLM)的发展历程中,我们见证了模型从简单的文本生成工具,逐渐演变为能够理解复杂指令、进行多轮对话、甚至展示创造性思维的智能系统。然而,这一进化并非仅仅依靠模型规模的增大和数据量的增加,更重要的是训练方法的创新。其中,人类反馈强化学习(Reinforcement Learning from Human Feedback, RLHF)作为一种革命性的训练范式,在2022年随着ChatGPT的问世而广受关注,并在随后的GPT-4、Claude、Gemini等先进模型中得到广泛应用。
|
11月前
|
Shell Linux Ruby
Python3虚拟环境venv
`venv` 是 Python 的虚拟环境工具,用于为不同项目创建独立的运行环境,避免依赖冲突。通过 `python3 -m venv` 命令创建虚拟环境,并使用 `source bin/activate` 激活。激活后,所有 Python 包将安装在该环境中,不影响系统全局环境。退出环境使用 `deactivate` 命令。每个虚拟环境拥有独立的包集合,确保项目间的隔离性。删除虚拟环境只需删除其目录即可。
1078 34
|
机器学习/深度学习 人工智能 移动开发
科技云报到:从“N 号房”看Deepfake乱象,如何证明“我”不是我
科技云报到:从“N 号房”看Deepfake乱象,如何证明“我”不是我
268 12
|
Java 网络架构 微服务
SpringCloud GateWay网关-学习笔记
SpringCloud GateWay网关-学习笔记
296 0
|
索引 Python
SAP与tracker使用
SAP与tracker使用
457 0
|
缓存 弹性计算 数据库
阿里云2核4G服务器支持多少人在线?程序效率、并发数、内存CPU性能、公网带宽多因素
2核4G云服务器支持的在线人数取决于多种因素:应用效率、并发数、内存、CPU、带宽、数据库性能、缓存策略、CDN和OSS使用,以及用户行为和系统优化。阿里云的ECS u1实例2核4G配置,适合轻量级应用,实际并发量需结合具体业务测试。
373 0
阿里云2核4G服务器支持多少人在线?程序效率、并发数、内存CPU性能、公网带宽多因素
|
Java Linux iOS开发
(4)将固件加载到没有ArduPilot固件的主板上
(4)将固件加载到没有ArduPilot固件的主板上
299 2
|
敏捷开发 分布式计算 BI
阿里云云效产品使用合集之如何新增代码库
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。