我是glib及其习语的新手。我使用GString
来从URL的下载中累积缓冲区。现在我想将该缓冲区打印到stdout。
现在我正在使用像
int len = catalogBuffer->len;
gchar *cat = g_string_free(catalogBuffer, FALSE);
catalogBuffer=0;
write(1, cat, len); // this might not do everything if the OS returns a partial write
g_free(cat);
但它看起来很笨拙。有没有更好的成语呢?
答案 0 :(得分:0)
从g_string_free()
返回的字符串以0结尾,因此您可以执行此操作:
char *cat = g_string_free(catalogBuffer, FALSE);
g_print("%s\n", cat);
g_free(cat);
答案 1 :(得分:0)
您还可以直接从GString
:
const char *cat = catalogBuffer->str;
g_print ("%s\n", cat);
…
g_string_free (catalogBuffer, TRUE);