windows的句柄和linux的fd对比

news/2025/11/21 23:12:48/文章来源:https://www.cnblogs.com/wangya216/p/19254778

以下是不严谨的对比表格:

特性 Linux 文件描述符 (FD) Windows 句柄 (Handle)
资源覆盖范围 主要集中在 I/O 相关资源
(文件、目录、设备、管道、套接字等)
覆盖所有内核对象
(I/O 资源 + 进程、线程、同步对象、内存、窗口、注册表等)
抽象层次 较高层次的 I/O 抽象。 较低层次的内核对象抽象。
操作接口 非常统一。open, read, write, close 等函数适用于大多数 FD。 非常分散。不同类型的句柄有各自专属的操作函数(如 ReadFile 用于文件,WaitForSingleObject 用于同步对象,SendMessage 用于窗口)。
设计哲学体现 “一切皆文件” - 将所有 I/O 统一看待。 “面向对象的内核” - 将所有系统资源都视为可被操作的对象。

以下是修正后的版本:

修正后的总结性对比表格

特性 Linux 文件描述符 (FD) Windows 句柄 (Handle)
资源覆盖范围 主要集中在可进行 I/O 操作的资源上
(文件、目录、设备、管道、套接字等)
覆盖所有由 NT 内核对象管理器管理的内核对象
(文件、事件、互斥体、进程、线程、内存段等)。
不包括 USER/GDI 对象(如窗口 HWND、画笔 HPEN)和注册表键(HKEY)等。
抽象粒度 统一的 I/O 流抽象
将各种不同的物理资源抽象为统一的字节流或数据报接口。
类型化的对象抽象
为每种内核资源提供一个明确的、独立的对象类型,强调对象的特定语义和行为。
操作接口 基础 I/O 接口高度统一
open, read, write, close 等函数适用于绝大多数 FD。
但高级或特定功能仍需专用接口(如 ioctl, sendmsg, epoll_ctl)。
接口按对象类型严格分离
每种类型的句柄都有其专属的操作函数集(如文件用 ReadFile/WriteFile,同步对象用 WaitForSingleObject),强调类型安全。
设计哲学体现 统一 I/O 模型
(常被社区概括为“一切皆文件”,其核心是用统一的接口处理所有 I/O)。
基于对象管理器的类型化资源模型
(常被社区概括为“一切皆对象”,其核心是用对象来封装和管理所有内核资源)。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/972614.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

20251117~20251123NOIP模拟赛

20251117NOIP模拟赛 A: 题目大意: 有 \(n\) 个点,每个点有 \(a_{i}\) 个孔,你现在要在这 \(n\) 个点中连 \(n - 1\) 条边,使得他们联通。 每条边连接两个孔,每个孔最多连接 \(1\) 条边,两种连接方案相同,当且仅…

谁又不是一边破碎一边前行

谁又不是一边破碎一边前行太厉害了语文考试,一句看起来如此简单的话居然能扯出这么多的内涵。 突然联想到考试的经历,或许也是一边破碎一边前行。下午考数学的时候不知道为啥心情非常烦躁,最后两分钟极限发现一个弱…

Java的第一个程序

HelloWorld 1.随便新建一个文件夹,存放代码 2.新建一个Java文件 文件后缀名为.java Hello.java 【注意点】系统可能没有显示文件后缀名,我们需要手动打开 3.编写代码 public class Hello{public static main(String[…

题解:qoj14419 Maximum Segment Sum

清新小巧题! 题意:给出一个数 \(n\),求对于所有 \(k=[0,n]\),满足由 \(-1,1\) 构成的 \(n\) 长序列的最大子段和等于 \(k\) 的个数。 做法: 首先肯定考虑把答案改为算 \(\le k\) 的个数再差分得到答案。 考虑怎么…

20232310 2025-2026-1 《网络与系统攻防技术》实验七实验报告

1.实验内容及要求 本实践的目标理解常用网络欺诈背后的原理,以提高防范意识,并提出具体防范方法。具体实践有 (1)简单应用SET工具建立冒名网站 (2)ettercap DNS spoof (3)结合应用两种技术,用DNS spoof引导特…

完整教程:基于Python楼王争霸劳动竞赛数据处理分析

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

46

所学时间:9小时 博客量啊 代码量:几百 所学知识:ai儿童作文生成器

【springboot线上零食舱系统】(免费领源码+演示录像)|可做计算机毕设Java、Python、PHP、小程序APP、C#、爬虫大数据、单片机、文案 - 详解

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

html导出pdf

index.vue <template><div class="app"><el-button type="primary" size="small" @click="exportPDF">导出pdf</el-button><h1>导出PDF进度:…

【第7章 I/O编程与异常】为什么句柄看起来像指针却不是指针?

这是一个极佳的问题,触及了操作系统设计中抽象、兼容性与安全的核心权衡。 “句柄看起来像指针却不是指针”这一现象,本质上是 Windows API 在类型系统上的“善意伪装”,背后有深刻的历史和工程原因。🔍 一、为什…

SQL 基础语法

SQL 基础语法 在我们用 docker run --name ctf-mysql -e MYSQL_ROOT_PASSWORD=root -p 3306:3306 -d mysql:5.7 命令创建了 ctf-mysql 容器后,使用 start ctf-mysql 打开容器,用 docker exec -it ctf-mysql mysql -u…

实用指南:暖手宝方案开发,暖手宝MCU控制方案开发设计

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

博客发文公示

文章会优先在我的个人博客https://penetr4t10n.top更新,偶尔或者不一定同步到博客园,如果想第一时间获取文章,请浏览我的个人博客,谢谢

2025年【口碑好的/比较好的/靠谱的】水密门【公司/工厂/厂家】推荐/排行榜 哪家好/强/靠谱

2025年【口碑好的/比较好的/靠谱的】水密门【公司/工厂/厂家】推荐/排行榜 哪家好/强/靠谱 比较好的/靠谱的/可靠的铝合金水密门/不锈钢水密门/船用铰链液压水密门/船用钢质水密门/船用耐压水密门/船用液压水密门/船用…

NVM 与 单节点下PM2进程守护 安装配置以及使用教程完整指南(含 Node.js 环境搭建)

NVM 与 单节点下PM2进程守护 安装配置以及使用教程完整指南(含 Node.js 环境搭建)该文档聚焦 NVM 与 PM2 的实用配置,旨在帮助用户高效管理 Node.js 环境与应用进程。内容上,先解决 NVM 安装的网络问题与环境变量配…

北大六院的诊断

医生:西**诊断:偏执性反应情绪冲动调药:氨磺必利片 0-1    丙戊酸镁 1-2

Pycharm远程连接服务器项目 - 实践

Pycharm远程连接服务器项目 - 实践pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco&…

django项目前端模版文件,在pycahrm无法使用ctrl+alt+l格式化代码的解决办法

闲话少说, <!DOCTYPE html> <html> <head><title>修复后的重置代码</title> </head> <body><h1>PyCharm 格式化问题修复示例</h1><h2>问题代码(导致格…

北大六院后看又相

我的双相:情绪高:应对低落的情绪