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

Posted by note1 at 痞客邦 PIXNET 留言(1) 引用(0) 人氣()

# ntpdate clock.stdtime.gov.tw

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

Posted by note1 at 痞客邦 PIXNET 留言(0) 引用(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;
}

Posted by note1 at 痞客邦 PIXNET 留言(0) 引用(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

Posted by note1 at 痞客邦 PIXNET 留言(0) 引用(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

Posted by note1 at 痞客邦 PIXNET 留言(0) 引用(0) 人氣()

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

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

Posted by note1 at 痞客邦 PIXNET 留言(0) 引用(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

Posted by note1 at 痞客邦 PIXNET 留言(4) 引用(0) 人氣()

最近想要在自己的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這個版本

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

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

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


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

Posted by note1 at 痞客邦 PIXNET 留言(0) 引用(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就可以了。

有圖有真相:


Posted by note1 at 痞客邦 PIXNET 留言(0) 引用(0) 人氣()

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

Posted by note1 at 痞客邦 PIXNET 留言(0) 引用(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


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

Posted by note1 at 痞客邦 PIXNET 留言(0) 引用(0) 人氣()

在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
--------------------------------------------------------------------

Posted by note1 at 痞客邦 PIXNET 留言(0) 引用(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的執行畫面:






Posted by note1 at 痞客邦 PIXNET 留言(0) 引用(0) 人氣()

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


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

Posted by note1 at 痞客邦 PIXNET 留言(0) 引用(0) 人氣()