成立 PCMan Facebook 專頁

之前常被許多網友要求加 Facebook,但是數量過多難以管理,大部分也都不認識,無法一一加入,所以成立 PCMan FB 專頁。未來長篇的文章還是會放 Blog 上,而平常的小動態會放在 FB。
另外,現在也可以使用 http://blog.pcman.im/ 來連到本網站

2008年11月20日 星期四

騙人的 glib/gio

Glib 在新版當中引入了 GIO,作為檔案操作和 streaming 的 lib
官方網頁寫了一大堆的優點,並且宣稱得多好多好,其實...
雖然號稱是 Glib 的一部分,而 Glib 理論上是跨桌面跨平台,
但少掉了 GVFS,GIO 其實就完全的不會動了...
而 GVFS,其實前身就是 GNOME VFS。
GIO 雖然宣稱可以在沒有 GVFS 的環境下運作,其實真相並非如此
Volume management 的部份就不會動了,而且磁碟的掛載
內部是直接「寫死」呼叫 gnome-mount,沒有這些 gnome 的工具程式
存在時,相關的部份根本完全都不會動。
沒有 GVFS 它是可以「編譯」沒錯,但實際上幾乎所有功能都廢了...
另外像是檔案操作的部份,雖然文件上宣稱,少了 GVFS,GIO 仍然可以運作,
只是會剩下只支援本地端檔案,而不能支援各種通訊協定,但是...
讀過程式碼之後,就會發現這是謊言...

glib-2.16.5/gio/glocalfile.c, line: 2305

static gboolean
g_local_file_copy (GFile *source,
GFile *destination,
GFileCopyFlags flags,
GCancellable *cancellable,
GFileProgressCallback progress_callback,
gpointer progress_callback_data,
GError **error)
{
/* Fall back to default copy */
g_set_error (error, G_IO_ERROR, G_IO_ERROR_NOT_SUPPORTED, "Copy not supported");
return FALSE;
}


所謂的沒有 GVFS 還剩下本地端的支援,只是秀個錯誤跟你說:「對不起,不支援這個功能喔...」
所以,雖然宣稱是 Glib 的一部分,雖然表面上作成跨桌面,不需要 GNOME,但實際上,
少了 GNOME/GVFS,基本上你很難讓 GIO 真正發揮功用,大部分的功能,其實都是故障的。

沒有留言: