Frame buffer是一個顯示記憶空間,從試驗中可以直接在指定的位置填入RGB數值,就可以改變螢幕畫面上的一個點;簡單一些,可以下cat命令,把Frame buffer的內容Dump出來,這樣等於是把畫面剪貼下來一樣,若再把畫面Dump回Frame buffer,剛剛的畫面又會回去,很直覺的操作,中間不需要透過複雜的轉換,後面我們就來認識他吧!
一般套裝Linux,Kernel似乎預設就有開啟Frame buffer,所以只要在Loader的參數加上vga mdoe就可以在Console開啟Frame buffer,不過開啟後Frame buffer的解析度跟Color bit就已經決定,不可動態更改。
在loader的選單中加入VESA mode
title Linux
root(hd0,0)
kernel .......................................... vga=792
initrd ...
可以參考的模式如下表
| Bits | 640×480 | 800×600 | 1024×768 | 1280×1024 | 1600×1200 |
| 8 | 769 | 771 | 773 | 775 | 796 |
| 16 | 785 | 788 | 791 | 794 | 798 |
| 32 | 786 | 789 | 792 | 795 | 799 |
開機後,看到企鵝就代表成功啟動Frame buffer囉!
以前用ASP在寫購物車的時候會用的split這樣的Func call來解析購物車裡面的內容,覺得這是個很好用的字串工具,現在在寫C的時候也會用到一些文字的設定檔的狀況,不知道有strtok()的狀況下,就是ㄧ個字元ㄧ個字元慢慢判斷,昨天在查CGI Session程式的時候,看到使用了這個System Call,第一個感覺是又驚又喜。
好吧!讓我們來認識strtok()
原型:
#include <string.h>
char *strtok(char *s, const char *delim);
第一個參數s所帶入的是要被切割的字串,
第二個參數delim(定界線)也就是分界的依據字元,
舉個實例:
字串 str="Name=Johnny";
strtok(str, “=");
return回來的字串point會是"Name"
那要如何取出下ㄧ個字節"Johnny"的話呢?
strtok(NULL, “=");
return回來的就是"Johnny"了!
很奇怪, 為什麼不用再傳入字串, 反而是NULL呢?
因為第一次的字串已經被系統暫存到記憶體了,
如果繼續取下ㄧ個字節呢?
return回來的會是NULL喔!
所以可以利用NULL來辨識字串是否已經結束。
千萬要記得必須連續使用喔!