本文引用自aftcast - C++中關於extern "C"的意義

note1 發表在 痞客邦 留言(1) 人氣()

# ntpdate clock.stdtime.gov.tw

ps : linux 主機必需要連上網路

note1 發表在 痞客邦 留言(0) 人氣()

它的使用方式如下:

條件式 ? 成立傳回值 : 失敗傳回值

範例程式:
#include
int main(int argc,char *argv[])
{
// a = 1 表示為 true 反之為 false
int a = 0;
int b = 20;
int x = 11;
// 若 a 為 true 則 x = b
// false 則 x = c
x = ( a ? b : c);
printf("x = %d\n",x);
return 0;
}

note1 發表在 痞客邦 留言(0) 人氣()

yum 是 fedora 內建的套件管理工具.....
使用方法<<�略>>

當想要install 一個套件時
最常遇見的問題:
Another app is currently holding the yum lock; waiting for it to exit...
Another app is currently holding the yum lock; waiting for it to exit...
Another app is currently holding the yum lock; waiting for it to exit...

這是因為 yum 的預設是會自動更新的....
此時剛好在更新....所以無法 install

解決方式2種:
(1)找出process 然後 kill 它

(2)關掉這個service,方法如下
a.su
b.打密碼
c.service yum-updatesd stop
d.chkconfig --level 5 yum-updatesd stop

note1 發表在 痞客邦 留言(0) 人氣()

這個...雖然很基本,但確很重要

關鍵字 位長 範圍 printf chars
char 1 -128..127 (或0..255,與體系結構相關)  %c
unsigned char 1 0..255  
signed char 1 -128..127  
int 2
(Dos或win16)
or
4
(win32或unix)
-32768..32767


 or


-2147483648..2147483647
 %i, %d
unsigned int 2
(Dos或win16)
or
4
(win32或unix)
0..65535


or


0..4294967295
 %u
signed int 2
(Dos或win16)
or
4
(win32或unix)
-32768..32767


or


-2147483648..2147483647
 %i, %d
short int 2 -32768..32767  %hi
unsigned short 2 0..65535  %hu
signed short 2 -32768..32767  
long int 4 -2147483648..2147483647  %li, %ld
unsigned long 4 0..4294967295  %lu
signed long 4 -2147483648..2147483647  
long long 8 -9223372036854775808..9223372036854775807  %lli
unsigned long long 8 0..18446744073709551615  %llu
float 4 3.4x10-38..3.4x10+38 (7 sf)  %f, %e, %g
double 8 1.7x10-308..1.7x10+308 (15 sf)  %f, %e, %g
long double 8 或以上 編譯器相關  %Lf, %Le, %Lg

note1 發表在 痞客邦 留言(0) 人氣()

假如在C++ 中要呼叫C 的function,
則需加入如下宣告:

#ifdef __cplusplus
extern  "C" {
#endif   
 
/* put your c function definiction here */
 
#ifdef __cplusplus
}
#endif   

note1 發表在 痞客邦 留言(0) 人氣()

最近在寫程式的時候候,由其是assembly 常常會把程式給寫到死掉...不然就是結果和預期的結果不太一樣
原因主要是因為資料的大小給錯或是亂給...
-----------------------------------------------------------------

  • 位元(bit, b)
    電腦的資料是使用二進位的01,每一個01是最小的儲存單位,也就是位元。
  • 位元組(byte, B)
    將8個位元組合成一個位元組(byte),我們通常將英語系或歐語系的字母、0~9的數字或符號等能夠使用一個位元組來表示的資料稱為字元(character) 
  • 字組(word)
    而中文字等需要使用兩個位元組(16位元)才能表示的資料則稱為字組(word)
------------------------------------------------------------------
結論:
所以它們之間的關系為:
bit 可以代表0,1
1byte = 8 bits
1word = 2 bytes = 16bits
1doubleword = 2 words = 4bytes = 32bit

note1 發表在 痞客邦 留言(8) 人氣()

最近想要在自己的Xp上安裝Linux,所以就想說安裝vmware...
但是看看自己手上的vmware...再看看官網上的版本 = ="
於是開始在google上尋找 突然發現有個東西叫...VirtualBox...就用它吧
原因:沒有什麼原因,只是剛好在google上看到,而且是GPL...
VirtualBox的官方網站(英文)
http://www.virtualbox.org/

VirtualBox的下載位置
http://www.virtualbox.org/wiki/Downloads

以下為它的下載頁面上的內容


在下載之前,要先確定你現在正在使用那種作業系統(OS)
而且有一點要注意
Please note that the package architecture must fit your host operating system architecture. So if you are running a 32-bit kernel on a 64-bit capable CPU you have to install the 32-bit version (x86/i386). On the other side you must install the AMD64 version if your host OS is 64-bit!
上面的內容是寫說(英文不夠好...有翻錯的話囧rz..)
如果你的OS是與64位元的CPU相容的32bit Kernel核心 你要去下載(X86/i386)

如果你的OS是64bit的Kernel核心 就要下載AMD64這個版本

在安裝完後,會出現一個畫面

上面的意思大概是說,要不要加入他們收集的統計資料中...應該沒有差吧@@

不過有點我很好奇....為啥安裝時,它會自動先選擇簡體呀....明明有內建繁體...怪了


以上...先寫到這樣....

note1 發表在 痞客邦 留言(0) 人氣()

解決方式:
1.修正 C:\Program Files\Mozilla Firefox\extensions\{CAFEEFAC-0016-0000-0001-ABCDEFFEDCBA}
\chrome.manifest 內容中的
locale javaconsole1.6.0_01 zh-TW chrome/locale/zh_TW/ffjcext/
改成
locale javaconsole1.6.0_01 zh-TW chrome/locale/zh-TW/ffjcext/

2.然後以安全模式開啟firefox C:\Program Files\Mozilla Firefox\firefox.exe” -safe-mode 退出firefox,再以正常方式啟動firefox就可以了。

有圖有真相:


note1 發表在 痞客邦 留言(0) 人氣()

簡單的說,如果你使用了某個function,那麼你就是『call』了一個function。
如果系統或是函式是要求你給一個function pointer,
這個function pointer指到一個實際的函式(多半這個函式是你自己寫的)。
然後它會在適當的時間呼叫此function,則此function就是所謂的 callback function。
因為這個function是被『callback』了。

note1 發表在 痞客邦 留言(0) 人氣()

何謂 callback function 呢?
用Google找了一下.....嗯.......
簡單的說就是回傳某個函數的指標, 呼叫者便可透過這個函數指標直接執行函數...
以下是我找到的範例
//---------------------------------------------------
//說明:                                                
//        這個是一個callback function...                
//        由Google上找到的例子加以修改而成的...        
//---------------------------------------------------
//若要測試,記得只能存成.c檔...
//(有warning,可以不用理)
//不可以存成.cpp檔...因為complier不會過...            
//---------------------------------------------------

#include <stdio.h>
//就是structure
struct table
{
    char id;
    void *func;
};

void *funcA() { printf("This is funcA()\n"); }
void *funcB() { printf("This is funcB()\n"); }
void *funcC() { printf("This is funcC()\n"); }
void *funcD() { printf("This is funcD()\n"); }

const struct table tb[] = { {1, funcA},
                            {2, funcB},
                            {3, funcC},
                            {4, funcD} };
//宣告callback function的prototype(原型)
void (*func)(void);       
int main(int argc,char *argv[])
{
    int index, i;
    index = 1;
    for (i = 0; i < 4; i++)
    {
        if (index == tb[i].id)
        {
            func = tb[i].func;
            func();//呼叫callback function
        }
        index++;
    }
    printf("如果在這裡呼叫callback function呢?\n");
    func();
return 0;
}

輸出的結果:
This is funcA()
This is funcB()
This is funcC()
This is funcD()
如果在這裡呼叫callback function呢?
This is funcD()
Press any key to continue


心得:要用心體會呀!!!!

note1 發表在 痞客邦 留言(6) 人氣()

在Linux上要安裝一個套件,最重要的是要去看README、INSTALL等說明文件
因為它會告訴你,怎麼做才會安裝成功。


通常安装一個套件的步驟是:(以gtk為例)
tar jxvf gtk+-2.4.13.tar.bz2 (解開套件)
cd gtk+-2.4.13/ (進入解開套件的目錄下)
執行./configure
PS:似乎在某些環境下./configure會造成terminal退出
可以試試看.configure (目前是沒有遇到這種情形啦@@)

若configure成功後,則會建立Makefile
再來執行make

PS:若configure沒有成功,此時執行make,則會出現以下的訊息
"make: *** No targets specified and no makefile found. Stop."

make成功後
執行make install 則會開始安裝了。
--------------------------------------------------------------------
(小結)安裝套件的步驟
(1) 先去看一看README、INSALL(雖然英文不夠好...但總有一天你會開竅的)
(2) ./configure
(3) make clean (為什麼多了這個步驟...因為以前可能有編譯失敗過)
(所以為了以防萬一...clean掉一些*.o等東西)
(4) make
(5) make install
--------------------------------------------------------------------

note1 發表在 痞客邦 留言(0) 人氣()

灌完Fedora Code IV之後,那接下來要做什麼呢??
來...灌軟體好了...PCMANX是用來上BBS的軟體.....

1.首先先以root登入到Fedora Code IV裡面。
(不要以其它的使用者登入,不然會發生權限的問題。例如:無法移動檔案到特定的目錄下)

2.到 http://pcmanx.csie.net/ 下載最新版的PCMANX 到 /usr/local/src/

3.打開終端機
(在 應用程式→附屬應用程式→終端機 )

4.在終端機上 打入 cd /usr/local/src

5.解壓縮 打入 tar -zxvf pcmanx-gtk2-0.3.4.tar.gz
(pcmanx-gtk2-0.3.4.tar.gz 是 檔名)

6.解完壓縮後,我們可以發現多了一個pcmanx-gtk2-0.3.4的資料夾
(可以 指令 ls -al 查看)

7.接下來 進入 資料夾內 , 請打cd pcmanx-gtk2-0.3.4

8.查看說明檔(可省略)


真正開始安裝:
9.開始偵測環境指定安裝的路徑 打入 ./configure --prefix=/usr/local/pcmanx

10.開始編譯 打入 make clear;make

11.安裝 打入 make install

12.安裝成功後,回到 /usr/local/pcmanx/ 下,請打cd /usr/local/pcmanx

13.打 ls -al 可以發現 三個資料夾 分別是 bin、lib、share

14.進入bin資料夾內,請打
cd bin

15.執行pcmanx 請打./pcmanx


PCMANX的執行畫面:






note1 發表在 痞客邦 留言(0) 人氣()

經過昨天晚上的努力,終於把Fedora Code IV給灌好了
為了方便起見,將裡面的東西都給灌了進去^^||


這是Fedora Code IV的介面:
Fedora Code IV

note1 發表在 痞客邦 留言(0) 人氣()