0

我正在用 gtk+ 2.0 和 gtksourceview 2.0 编写一个文本编辑器。目前我正在使用gtk_text_buffer_get_text并将g_file_set_contents文本缓冲区保存到文件中。我在文档中g_file_set_contents看到它说:

此外,由于文件被重新创建,现有权限、访问控制列表、元数据等可能会丢失。

我环顾了 devhelp 和 Google,找不到在保留文件权限的同时将文本缓冲区保存到文件的替代方法。关于如何做到这一点的任何想法?谢谢。

4

1 回答 1

0

正如@ptomato 建议的那样,使用一种截断文件的方法,然后根据需要写出文本缓冲区。这是一段对我有用的代码:

gtk_text_buffer_get_end_iter(tbuffer,&end_iter);
gtk_text_buffer_get_start_iter(tbuffer,&start_iter);
text = gtk_text_buffer_get_text(tbuffer,&start_iter,&end_iter,FALSE);
    FILE *fp;
    fp=fopen(path, "w");
    fprintf(fp, "%s", text);
    fclose(fp);
于 2012-05-30T21:45:16.783 回答