从Windows文件描述符或FILE*中提取文件句柄

16

是否可能从Windows文件描述符或FILE*中提取文件句柄(HANDLE)?

举个例子,FILE*是基于文件描述符实现的,而文件描述符(on Windows)则是基于HANDLE实现的。可以使用文档化的fileno()函数从FILE*中提取FD。从FD中提取句柄可能需要更多的技巧或更多的文档记录......


3
为什么人们会投票关闭一个合理的问题。 - Andrei
有些人对基础问题持有偏见。 - Lance Roberts
@Andrei:最初的阅读确实有点困难。今后在拼写方面多下一些功夫,人们更有可能花费精力为您找到答案。 - Ben Voigt
@Lance,这绝对不是一个基础问题。问10个人是否了解(1)FDs是否有底层HANDLE(2)翻译是否被导出,9个人中有9个人都不知道答案。 - Andrei
1个回答

20

9
逆操作——_open_osfhandle——将一个C运行时文件描述符与现有的操作系统文件句柄关联起来。 - Piotr Dobrogost
1
似乎需要将 _get_osfhandle 的结果转换为 HANDLE 才能使其正常工作。如果没有进行转换,我会收到错误消息(来自在 msys 2 中编译 C++ 的 gcc 6.3):error: invalid conversion from 'intptr_t {aka long long int}' to 'HANDLE {aka void*}'。 - Klamer Schutte

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接