C/C++中的自定义FILE类型

前端之家收集整理的这篇文章主要介绍了C/C++中的自定义FILE类型前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
是否可以在C/C++中创建我自己的FILE(stdio.h)类型的自定义流,例如可以与fputs()一起使用?

解决方法

如果您的“自定义流”不是您可以用文件描述符或文件句柄表示的东西,那么您就不走运了. FILE类型是实现定义的,因此没有标准方法将其他内容与一个相关联.

如果你可以获得一个C文件描述符,无论你想要写什么,那么你可以在它上面调用fdopen把它变成一个FILE *.它不是标准的C或C,而是由Posix提供的.在Windows上,拼写为_fdopen.

如果您正在使用Windows并且有一个HANDLE,则可以使用_open_osfhandle文件描述符与其关联,然后从那里使用_fdopen.

你真的与fputs联系在一起吗?如果没有,则使用C IOStream替换它.然后你可以提供自己的std :: basic_streambuf的后代,将它包装在std :: ostream中,并在其上使用标准的C I / O.

猜你在找的C&C++相关文章