文件描述符 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文档化的只是一个对外的接口约定而已

最新文章

  1. 开始用Word 2013来写博客
  2. CSS清除浮动
  3. 新手入门之GDB调试
  4. AngularJS开发指南1:AngularJS简介
  5. How I came to find Linux
  6. 从零开始PHP学习 - 第一天
  7. 从头开始学JavaScript (十)——垃圾收集
  8. centos6.5中gitlab的搭建
  9. Egret的Shape
  10. 开发企业微信打卡API笔记
  11. 2018-2019-2 20175311 实验一《Java开发环境的熟悉》实验报告
  12. Centos7 Mysql5.7主从服务器配置
  13. Xcode工程编译之duplicate symbol问题引发的一些知识
  14. 树和二叉树->基础知识
  15. SQL 更新修改删除一个表,库存自动增减的写法
  16. kali的中文输入法-安装后无中文选项的解决办法
  17. LDA(latent dirichlet allocation)的应用
  18. selenium+python自动化93-Chrome报错:Python is likely shutting down
  19. Linux命令-实时监测命令:watch
  20. C#生成流水号编码[a-z(不包括i和o) 按0-9 a-z的顺序)]

热门文章

  1. U盘在电脑上安装CentOS 7 系统过程详解
  2. 湖南集训day8
  3. Java常用的数组排序算法(面试宝典)
  4. webview加载本地页面
  5. 检查阿里云ssl证书到期情况
  6. [ NOIP 2008 ] TG
  7. Android_撕衣服小案例
  8. ionic2/3 禁止屏幕旋转,禁止横屏,竖屏
  9. java 异常报错总结
  10. 强大而优雅,API 研发管理 EOLINKER 新版正式发布!