文件描述符 VS 文件句柄
文件描述符 VS 文件句柄
文件描述符是标准 C 里用的,是 int 型的,比如调用 open 函数成功后会返回一个与当前文件相关联的 int 型数字。
文件句柄是 Windows 里用的,是 HANDLE 型的,比如创建文件 CreateFile 返回一个 HANDLE 型的值。
handle
在Windows中,句柄是一个系统内部数据结构的引用。例如,当你操作一个窗口,或说是一个Delphi窗体时,系统会给你一个该窗口的句柄,系统会通知你:你正在操作142号窗口,就此,你的应用程序就能要求系统对142号窗口进行操作——移动窗口、改变窗口大小、把窗口极小化为图标,等等。实际上许多Windows API函数把句柄作为它的第一个参数,如GDI(图形设备接口)句柄、菜单句柄、实例句柄、位图句柄等等,不仅仅局限于窗口函数。
换句话说,句柄是一种内部代码,通过它能引用受系统控制的特殊元素,如窗口、位图、图标、内存块、光标、字体、菜单等等。
句柄是 具体对象[数据块] 描述符 的指针,也就是 说有一块内存区域保存了最终数据,而为了对这个数据进行操作,我们需要针对其构造一个描述结构体,这个结构体称为描述符,而这个描述符的指针就是那个该死的难以理解的所谓句柄
如果使用了标准C库的函数获得文件描述符,那么就不要使用win32的文件操作函数,因为win32的文件操作函数需要win32句柄,
反之亦然
标准C库只是为了跨平台移植,在任何平台如果牵涉到操作系统控制的资源,都需要依靠本地调用来实现
在win平台上依靠本地调用来实现,并不一定要调文档化的win32接口,应该是直接调了内核的、未文档化的文件操作函数vc的crt库是微软内部写的,win32文档化的只是一个对外的接口约定而已
最新文章
- 开始用Word 2013来写博客
- CSS清除浮动
- 新手入门之GDB调试
- AngularJS开发指南1:AngularJS简介
- How I came to find Linux
- 从零开始PHP学习 - 第一天
- 从头开始学JavaScript (十)——垃圾收集
- centos6.5中gitlab的搭建
- Egret的Shape
- 开发企业微信打卡API笔记
- 2018-2019-2 20175311 实验一《Java开发环境的熟悉》实验报告
- Centos7 Mysql5.7主从服务器配置
- Xcode工程编译之duplicate symbol问题引发的一些知识
- 树和二叉树->;基础知识
- SQL 更新修改删除一个表,库存自动增减的写法
- kali的中文输入法-安装后无中文选项的解决办法
- LDA(latent dirichlet allocation)的应用
- selenium+python自动化93-Chrome报错:Python is likely shutting down
- Linux命令-实时监测命令:watch
- C#生成流水号编码[a-z(不包括i和o) 按0-9 a-z的顺序)]