Time of Update: 2018-12-04
快樂蝦http://blog.csdn.net/lights_joy/lights@hb165.com 本文適用於wxWidgets-2.8.8vs2008Windows XP 歡迎轉載,但請保留作者資訊 在編譯wxWidgets內建的samples時出現一個錯誤:CVTRES : fatal error CVT1100: duplicate resource. type:MANIFEST, name:1,
Time of Update: 2018-12-04
1.設定訊號處理函數使用者 可以提供自己的訊號處理函數,然後使用signal函數將處理函數載入,函數原型 #include <signal.h>void (*signal (int signo,void (*func)(int)))(int); signo表示訊號值,func表示一個函數的指標,用來捕獲指定的訊號。func可去如下值之一:SIG_IGN 忽略該訊號SIG_DFL 使用系統預設的方式處理SIG_ERR
Time of Update: 2018-12-04
1.測試檔案存取權限 #include<unistd.h>定義函數 int access(const char * pathname,int mode);函數說明 access()會檢查是否可以讀/寫某一已存在的檔案。參數mode有幾種情況組合,R_OK,W_OK,X_OK和F_OK。R_OK,W_OK與X_OK用來檢查檔案是否具有讀取、寫入和執行的許可權。F_OK則是用來判斷該檔案是否存在。由於access()只作許可權的核查,並不理會檔案形態或檔案內容,因此,如果一目錄表示為“
Time of Update: 2018-12-04
wxWidgets內建的樣本中有一個是示範與MFC的混用的,其想法是以MFC程式為架構,然後使用wxWidgets的一些應用類(與訊息處理無關的類)。那麼反過來是否可行呢?試了一下,其實完全可以以wxWidgets為架構,然後使用MFC中的應用類,當然,也只能使用與訊息處理無關的類!不過在應用程式退出時MFC會報告很多的記憶體流失。跟蹤一下發現原來是wxBase.dll先於mfc載入,在退出時mfc動態庫先卸載,此時就會報告記憶體流失。知道原因後處理就簡單了,調整wxBase.dll,讓它依賴
Time of Update: 2018-12-04
1.訊號集和訊號集處理函數訊號集是一個位向量,其中每一位對應著linux系統的一個訊號。可使用如下函數對訊號集進行處理: #include <signal.h>int sigemptyset(sigset_t * set);int sigfillset(sigset_t * set);int sigaddset(sigset_t * set);int sigdelset(sigset_t *
Time of Update: 2018-12-04
wxWidgets支援在菜單上顯示表徵圖,於是想當然地用: wxMenu* file_menu = new wxMenu(); pMenuItem = file_menu->Append(wxID_EXIT, wxT("退出(&X)/tCtrl-x"), wxT("退出本系統")); pMenuItem->SetBitmap(wxBITMAP(exit_16x16_bmp)); pMenuBar->Append(file_menu,
Time of Update: 2018-12-04
1.以非阻塞方式開啟檔案調用open時,使用O_NONBLOCK選項即可。 執行個體://noblock.c#include <stdio.h>#include <stdlib.h>#include <fcntl.h>#include <unistd.h>#include <errno.h>#define MAX 100000#define LEN 1024 /* 使用宏最為緩衝區的大小 */int main(int argc,
Time of Update: 2018-12-04
1.建立訊息佇列 #include <sys/msg.h>int msgget(key_t key,int flags); 參數中key用來轉換成一個標識符,flags表明函數的行為。 //creat_msg.c#include <sys/msg.h>#include <sys/types.h>#include <sys/ipc.h>#include <stdio.h>#include <stdlib.h>int main(
Time of Update: 2018-12-04
在使用wxWidgets時發生一個奇怪的錯誤:使用new建立一個wxGrid,在釋放時報告heap錯誤。 m_pGrid = new wxGrid( this, wxID_ANY, wxPoint( 0, 0 ), wxSize( 400, 300 ) ); delete m_pGrid;什麼操作都沒做。這個語句在wxWidgets樣本中沒有任何問題,
Time of Update: 2018-12-04
1.概念將一個檔案與記憶體中的某一個緩衝區建立一種映射關係。使用者對緩衝區進行讀寫就相當於對相應的檔案進行讀寫。 2.建立記憶體映射#include <sys/mman.h>定義函數 void *mmap(void *start,size_t length,int prot,int flags,intfd,off_t
Time of Update: 2018-12-04
快樂蝦http://blog.csdn.net/lights_joy/lights@hb165.com 本文適用於Visual studio
Time of Update: 2018-12-04
檔案狀態包括檔案的大小,檔案的所有者,檔案的修改日期。這些資訊和檔案的內容是分開儲存的。使用如下函數得到檔案的狀態。#include <sys/stat.h>int stat(const char * file_name,struct stat *buf);函數說明 stat()用來將參數file_name所指的檔案狀態,複製到參數buf所指的結構中。下面是struct stat內各參數的說明struct stat{dev_t st_dev; /*device*/ino_t
Time of Update: 2018-12-04
linux下的檔案分為兩部分,級隱藏檔內容的i節點和隱藏檔名的目錄項。i節點中包含了檔案的大量資訊,例如,儲存檔案內容的磁碟塊號,檔案的存取權限,檔案長度和指向該檔案的目錄項的永久連結數目等。目錄項儲存著檔案的檔案名稱和i節點號。多個目錄項可以執行同一個i節點。i節點中儲存有隱藏檔內容的塊的號碼。檔案開啟後,fd會指向i節點,因此如果有一個程式向已開啟的檔案text.txt輸出內容,write(fd,****);這是即使在另一個終端將該檔案改名字了,原有程式仍可通過fd寫內容,只是這是我們只有通
Time of Update: 2018-12-04
1.匿名半雙關管道主要特性:a 資料只能在一個方向上移動b 只能在具有公用祖先的處理序間通訊,即或是父子進程,或是兄弟關係的處理序間通訊 建立管道的函數如下: #include <unistd.h>int pipe(int fd[2]); int
Time of Update: 2018-12-04
rm [選項]... 檔案...刪除檔案。 -f, --force 強制移除。忽略不存在的檔案,不提示確認 -i 在要刪除前需要確認 -I prompt once before removing more than three files, or when removing recursively. Less intrusive than -i,
Time of Update: 2018-12-04
1.建立一個永久連結 #include<unistd.h>定義函數 int link (const char * oldpath,const char * newpath);函數說明 link()以參數newpath指定的名稱來建立一個新的串連(硬串連)到參數oldpath所指定的已存在檔案。如果參數newpath指定的名稱為一已存在的檔案則不會建立串連。傳回值 成功則返回0,失敗返回-1,錯誤原因存於errno。附加說明
Time of Update: 2018-12-04
1.建立 #include <sys/shm.h>int shmget(key_t key,size_t size,int flag); 當開啟一個記憶體段時,參數size的值為0。 //ceate_shm.c#include <sys/types.h>#include <sys/ipc.h>#include <sys/shm.h>#include <stdlib.h>#include <stdio.h>#define
Time of Update: 2018-12-04
linux環境下有7種檔案:1.普通檔案,包括文字檔和二進位可執行檔。2.目錄檔案3.塊特殊檔案,這是對代緩衝的裝置的抽象4.字元特殊檔案,這是對不帶緩衝的裝置的抽象。linux的裝置不是塊裝置就是字元裝置5.具名管道(named pipe,FIFO)6.符號連結7.通訊端,用於網路進程之間通訊的一種檔案 linux提供一系列宏來判斷檔案的類型。 對應的宏 檔案類型S_ISREG() 普通檔案S_ISDIR()
Time of Update: 2018-12-04
小姑娘四歲多了,好勝。某日,讓小姑娘玩gnome下的“貪吃蛇”遊戲,小姑娘完全沒有經驗,動了幾下鍵盤就game over了。於是乎小姑娘強制爸爸和她一起玩,在得到拒絕後,小姑娘開始進行眼淚攻勢:“我只玩一下就失敗了,爸爸不會失敗。”堅決拒絕了小姑娘的要求,開始給小姑娘講道理,最後小姑娘總算同意自己繼續努力,這時時間已經過去了半個小時,小姑娘已經從頭到腳一身的汗,哎....... 只是gnome實在不爭氣,在小姑娘瞎拍鍵盤的情況下居然一下就掛掉了!實在有損linux穩定的形象!當然核心還是很強悍,
Time of Update: 2018-12-04
1.存取權限一個檔案有9個許可權位,由左往右:所有者讀,寫,執行位;所有者所在組的使用者讀,寫,執行位;其他使用者讀,寫,執行位。linux提供了測試宏判斷指定的許可權位是否具有許可權。方法是使用st_mode域與相應的宏進行位與操作。 st_mode測試宏 宏的八進位值 意義S_IRUSR 0400