1. 不知啥原因,在使用 Fl_File_Browser 時,執行 fileList->load(directory_, sort); 後,畫面一片空白,或是直接退出不執行。

2. 在加了一堆 printf 後,程式又可以執行,沒有加任何修正,懷疑是 preemprty 的問題,所以在 nxlib 的 GrFlush(); 後加了一個 usleep() ,就一切正常了。

3. patch
--- nxlib-0.45-old/Flush.c 2001-12-29 02:34:33.000000000 +0800
+++ nxlib-0.45-new/Flush.c 2008-01-15 11:27:27.000000000 +0800
@@ -1,3 +1,4 @@
+#include
#include "nxlib.h"

/* Flush all buffered output requests. */
@@ -7,6 +8,7 @@
XFlush (Display *dpy)
{
GrFlush();
+ usleep(1000);
return 1;
}

上面的修改不用了,最後找到原因是我的 stack size 太小,只有 4K bytes,而 FLTK 的 Fl_File_Browser 類別的 load 函數有個變數超出 4K bytes,所以會造成程式亂掉。只要修改 stack 大小就可以了。

再次補充,之前 stack 依照 sigmadesign 改成 32767,部份目錄顯示 OK,但當目錄裏檔案數目超過 150 個左右就不正常了,所以必須改成 65535 才可以。

台南小新 發表在 痞客邦 PIXNET 留言(0) 人氣()