我有一个GDataOutputStream*,现在我需要手动关闭底层的GOutputStream*(通过调用g_output_stream_close())。

GDataOutputStream*强制转换为GOutputStream*是否安全?还是我需要以其他方式获取基础流?

最佳答案

是的,这是正确的做法:

g_autoptr(GError) local_error = NULL;
if (!g_output_stream_close (G_OUTPUT_STREAM (my_data_stream), NULL, &local_error))
  {
    /* handle the error, for example: */
    g_warning ("Error closing stream: %s", local_error->message);
  }

10-08 20:02