解决方法
如果您的“自定义流”不是您可以用文件描述符或文件句柄表示的东西,那么您就不走运了. 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.