文件描述符,文件句柄的区别?

youshiyouyu 2008-05-25 10:22:48
文件描述符,文件句柄的区别?
...全文
1843 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
sydii1225 2008-10-08
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 sgnaw 的回复:]
文件描述符是标准 C 里用的,是 int 型的,比如调用 open 函数成功后会返回一个与当前文件相关联的 int 型数字。
文件句柄是 Windows 里用的,是 HANDLE 型的,比如创建文件 CreateFile 返回一个 HANDLE 型的值。
[/Quote]

如果使用了标准C库的函数获得文件描述符,那么就不要使用win32的文件操作函数,因为win32的文件操作函数需要win32句柄,
反之亦然

标准C库只是为了跨平台移植,在任何平台如果牵涉到操作系统控制的资源,都需要依靠本地调用来实现
在win平台上依靠本地调用来实现,并不一定要调文档化的win32接口,应该是直接调了内核的、未文档化的文件操作函数
vc的crt库是微软内部写的,win32文档化的只是一个对外的接口约定而已

所以,只可能 描述符 -〉句柄-〉内部指针,不可能反过来
wantstudio 2008-07-22
  • 打赏
  • 举报
回复
描述符句柄,这个说法是不好的,应该说成描述符指针,而描述符号指针又可以说成 句柄。
注意,有的情况下描述符可能并不一定存在,这一切都取决于这个句柄封装的代码作者,
因为最终执行的代码都是由他来定义的。
wantstudio 2008-07-22
  • 打赏
  • 举报
回复
句柄是 具体对象[数据块] 描述符 的指针,也就是 说有一块内存区域保存了最终数据,而为了对这个数据进行操作,我们需要针对其构造一个描述结构体,这个结构体称为描述符,而这个描述符的指针就是那个该死的难以理解的所谓句柄,我们国家的汉语文化真的出现问题了,至少在科技领域,就存在着语言问题,有很多从外来翻译过来的词不达意的词语,严重的阻碍了我们的科技进步,V0860语。其中一个可以想到的原因是技术还比较落后,另外一个原因就是我们对这个问题的关注太缺乏了。也许有一天,我们可以有这么一个组织来关注这个问题,改善这个状况。
fanfuying 2008-06-05
  • 打赏
  • 举报
回复
嗯,楼上说的挺对的
linco_gp 2008-05-26
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 sgnaw 的回复:]
文件描述符是标准 C 里用的,是 int 型的,比如调用 open 函数成功后会返回一个与当前文件相关联的 int 型数字。
文件句柄是 Windows 里用的,是 HANDLE 型的,比如创建文件 CreateFile 返回一个 HANDLE 型的值。
[/Quote]
lionc650 2008-05-26
  • 打赏
  • 举报
回复
handle
在Windows中,句柄是一个系统内部数据结构的引用。例如,当你操作一个窗口,或说是一个Delphi窗体时,系统会给你一个该窗口的句柄,系统会通知你:你正在操作142号窗口,就此,你的应用程序就能要求系统对142号窗口进行操作——移动窗口、改变窗口大小、把窗口极小化为图标,等等。实际上许多Windows API函数把句柄作为它的第一个参数,如GDI(图形设备接口)句柄、菜单句柄、实例句柄、位图句柄等等,不仅仅局限于窗口函数。
换句话说,句柄是一种内部代码,通过它能引用受系统控制的特殊元素,如窗口、位图、图标、内存块、光标、字体、菜单等等。
from baidu。
lionc650 2008-05-26
  • 打赏
  • 举报
回复
句柄的概念比较模糊,有没有高人来解释
海枫 2008-05-26
  • 打赏
  • 举报
回复
正如上机几个楼主所说,句柄在window中出现得比较多!
句柄通常是指针的指针!
王国凡 2008-05-25
  • 打赏
  • 举报
回复
文件描述符是标准 C 里用的,是 int 型的,比如调用 open 函数成功后会返回一个与当前文件相关联的 int 型数字。
文件句柄是 Windows 里用的,是 HANDLE 型的,比如创建文件 CreateFile 返回一个 HANDLE 型的值。
gezichong 2008-05-25
  • 打赏
  • 举报
回复
个人理解:
文件句柄:是windows下概念,在linux/unix下没有句柄这一说法,

在linux/unix下都是"文件描述符",是整形的!!!
fjpqzm 2008-05-25
  • 打赏
  • 举报
回复
文件描述符是一个整形数据, 他存放的是当前进程打开文件描述符表中正在使用的文件序号。
文件句柄好像是windows下的一种概念, 我觉得它最终还是要映射到底层的文件描述符, 或者还有另外一种
机制可以访问定位到文件

23,187

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧