gpt4 book ai didi

c - 如何检索 CreateFile 结果的 FILE*?

转载 作者:太空宇宙 更新时间:2023-11-04 00:32:40 24 4
gpt4 key购买 nike

见标题。

我如何实现这个问题的反面:How do I get the file HANDLE from the fopen FILE structure?

我用

创建句柄
      HANDLE h = CreateFile(name,
GENERIC_WRITE,
0,
NULL,
OPEN_ALWAYS,
FILE_ATTRIBUTE_NORMAL,
NULL);

然后尝试使用 fputs 向其中写入一些数据。

fputs 调用失败

_VALIDATE_STREAM_ANSI_RETURN(stream, EINVAL, EOF);

其中 stream 是我从 CreateFile 获得的句柄。


我这样做的原因是我使用了一个使用 FILE* 句柄的外部库,并且我没有打开一个普通文件(直到现在),而是试图写入一个管道代替。并且更改外部库不是一种选择。

最佳答案

不知道这是否是最好的方法,但请参阅 _open_osfhandle():

http://msdn.microsoft.com/en-us/library/bdts1c9x(v=vs.71).aspx

int fd = _open_osfhandle(h, ...);

它返回一个文件描述符,您必须使用 fdopen 打开它以获得 FILE*

FILE* fp = _fdopen(fd, ...);

关于c - 如何检索 CreateFile 结果的 FILE*?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7359188/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com