wxGTK-2.8.8 中,預設是 --enable-unicode,但是很奇怪的,configure --enable-unicode 之後,在 setup.h 裡面並不會
#define HAVE_WCSTOULL,結果導致使用 wxString 中的 ToLongLong 一直沒辦法法轉成 64 bits 的長整數。但是如
果是以 configure --disable-unicode,則 #define HAVE_STRTOULL。
結果呢,不管是 ansi build 或是 unicode build,底層都呼叫了 strtoll 及 strtoull 來做 64 bits 的長整數轉換。但是 unicode
實際上要用的是寬字元的 wcstoll 及 wcstoull,因此,在 unicode build 的情形下,使用了 strtoll 及 strtoull 是沒有辦法正確
的轉換成長長整數。
zxlin 發表在 痞客邦 留言(0) 人氣(217)
xrandr 這個工具可以讓我們得知解析度、各個 output 的狀態(前提是驅動必須支援)。
在 shell script 中,常常針對 xrandr 的輸出去做文字的處理,來判斷現在的解析度、輸出裝置等等,但如果是從 C 程式呢?
一直用外部命令呼叫,或是 popen 等等,好像不是很好的方式。這點可以參考 xrandr.c 得到一個大概。它主要是透過 Xrandr
這個 extension 去取得相關的資訊。
zxlin 發表在 痞客邦 留言(0) 人氣(326)
Shell script 寫了老半天,竟然不會用 for loop?
原本都是用
for i in 5 4 3 2 1
的用法,結果今天想要用個三百五百去倒數,總不能全寫出來吧?
雄雄間不知道該怎麼寫一個大 range 的寫法。後來查了才知道,跟 C/C++ 的 for loop 差不多:
zxlin 發表在 痞客邦 留言(0) 人氣(26,339)
最近為了工作上的需要,對一整個系統做類似 CRC checksum 的東西。常用的 md5sum 就派上用場了,但是需要對系統中每一個檔案都做 md5sum 出來,做成一個列表。
之前看到的做法如下:(系統 mount 在 /mnt)
find /mnt -type f -print0 | xargs -0 md5sum > <path/to/file>
|
其實平常用 find,都只是找找檔案而已。今天看到了 -print0 這個參數,看了 man page 才知道,
它會將列出來的字串以 null character 做該行字串的結尾(預設是 -print,以 new line character 做結尾)
zxlin 發表在 痞客邦 留言(0) 人氣(209)
最近在用 wxWizard 寫那種下一步下一步的精靈,結果…
如果在 wxWizard 的頁面中,加入一個 wxStaticText,裡面填入一串很長很長的文字,
一般而言,它是會自己斷行的,但是 wxWizard 並不會,而且這時候去拖拉調整視窗大小的話,
就出現 exception 了。
在 wxWidgets 的討論區上已有人提出這樣子的問題了,似乎是 wxSizer 或是 wxBoxSizer 的問題,
但似乎尚未有解?
zxlin 發表在 痞客邦 留言(0) 人氣(129)
在 Linux 下面其實很多時候寫了一些小工具,都是命令列底下的程式。但是這對一般使用者而言,是不方便執行的。
日前就遇到這種情形,需要將一個工具讓使用者能透過「滑鼠兩下」的情形就執行。
原本想說寫成 script ,但是在 Ubuntu 8.04.1 底下,從滑鼠去點兩下 script file 時,系統會詢問「執行」「終端機執行」「編輯」的動作選擇。
後來發現最簡單的方便,就是寫個 .desktop file 就行。
比如說,有一個程式名稱叫「Hello」,在命令列底下執行時會秀「Hello Ubuntu !」。
所以只要寫了一個 Hello.desktop,內容如下:
zxlin 發表在 痞客邦 留言(0) 人氣(998)
哈哈!騙子版本還有續集耶!
「所有騙子的第二個共同特徵就是可以把上述各種元素很自然地串成數篇動人的樂章…(光講的就比你唱的還好聽)…」
zxlin 發表在 痞客邦 留言(0) 人氣(607)
今天又有一句很讚的話了,收錄如下:
「所有騙子的第一個共同特徵就是時尚單字跟專業術語記得特別多…像鵝肝醬 / 質子刀 / 節能減碳 / 3D四核心…」
哈哈哈哈!
心有戚戚焉啊!
zxlin 發表在 痞客邦 留言(0) 人氣(2,062)
為了年底的英文口試,打算平常時找些口語化的英文來聽。本來想買書的,有些都有附英文對話的 CD,後來想想,線上其實有很多這類的節目可以收聽。有鑑於英文的程度實在是好不到哪去,聽什麼 ICRT、CNN、BBC 之類的大概只會想睡而已,所以找了高中時代的好朋友空中英語教室。
Google 了之後,發現可以直接使用 gmplayer 收聽!先安裝 mplayer 之後,使用以下指令:
進階級的空中英語教室:
gmplayer mms://air.hihit.net/studio/`date +%Y%m%d`ada.wma
基礎級的空中英語教室:
zxlin 發表在 痞客邦 留言(2) 人氣(1,068)
可以用指令 dpkg-query 來查詢,再配合其他文字處理器,如 awk 來讓顯示更人性化。(Google 大神教的~)
dpkg-query -W --showformat='${Installed-Size} ${Package}\n' | sort -n | awk '{printf "%.3f MB\t%s\n", $1/(1024), $0}'
主要動作是 dpkg-query,透過 --showformat 可以看到一些資訊,可以從 man dpkg-query 查詢有哪些 format 可以秀。
sort -n 則是透過數值排序,在這裡的數值就是指 Installed-Size。
awk 的部份則是取出數值部份,除 1024(轉換成 MB),方便觀看。
zxlin 發表在 痞客邦 留言(0) 人氣(402)