linux常用函式簡單介紹

2022-04-30 15:57:12 字數 2334 閱讀 5508

mmap函式簡介:

mmap系統呼叫並不是完全為了用於共享記憶體而設計的。它本身提供了不同於一般對普通檔案的訪問方式,程序可以像讀寫記憶體一樣對普通檔案的操作。而posix或系統v的共享記憶體ipc則純粹用於共享目的,當然mmap()實現共享記憶體也是其主要應用之一。 

mmap系統呼叫使得程序之間通過對映同乙個普通檔案實現共享記憶體。普通檔案被對映到程序位址空間後,程序可以像訪問普通記憶體一樣對檔案進行訪問,不必再呼叫read(),write()等操作。

我們的程式中大量運用了mmap,用到的正是mmap的這種「像訪問普通記憶體一樣對檔案進行訪問」的功能。實踐證明,當要對乙個檔案頻繁的進行訪問,並且指標來回移動時,呼叫mmap比用常規的方法快很多。 

來看看mmap的定義: 

void *mmap(void *addr, size_t len, int prot, int flags, int fd, off_t offset);

引數fd為即將對映到程序空間的檔案描述字,一般由open()返回,同時,fd可以指定為-1,此時須指定flags引數中的map_anon,表明進行的是匿名對映(不涉及具體的檔名,避免了檔案的建立及開啟,很顯然只能用於具有親緣關係的程序間通訊)。

len是對映到呼叫程序位址空間的位元組數,它從被對映檔案開頭offset個位元組開始算起。

prot引數指定共享記憶體的訪問許可權。可取如下幾個值的或:prot_read(可讀),prot_write(可寫),prot_exec(可執行),prot_none(不可訪問)。

flags由以下幾個常值指定:map_shared, map_private, map_fixed。其中,map_shared,map_private必選其一,而map_fixed則不推薦使用。 

如果指定為map_shared,則對對映的記憶體所做的修改同樣影響到檔案。如果是map_private,則對對映的記憶體所做的修改僅對該程序可見,對檔案沒有影響。

offset引數一般設為0,表示從檔案頭開始對映。

引數addr指定檔案應被對映到程序空間的起始位址,一般被指定乙個空指標,此時選擇起始位址的任務留給核心來完成。函式的返回值為最後檔案對映到程序空間的位址,程序可直接操作起始位址為該值的有效位址。

strstr簡介:

包含檔案:string.h

函式名: strstr

函式原型:externchar*strstr(char*str1,constchar*str2);

語法:*strstr(str1,str2)

str1: 被查詢目標 string expression to search.

str2: 要查詢物件 the string expression to find.

返回值:若str2是str1的子串,則先確定str2在str1的第一次出現的位置,並返回此str1在str2首位置的位址。;如果str2不是str1的子串,則返回null。

strcat簡介:

strtok簡介:

函式原型:char *strtok(char *s, const char *delim);

function:分解字串為一組字串。s為要分解的字串,delim為分隔符字串。

description:strtok()用來將字串分割成乙個個片段。引數s指向欲分割的字串,引數delim則為分割字串,當strtok()在引數s的字串中發現到引數delim的分割字元時      則會將該字元改為\0 字元。在第一次呼叫時,strtok()必需給予引數s字串,往後的呼叫則將引數s設定成null。每次呼叫成功則返回被分割出片段的指標。

/* 函式第一次呼叫需設定兩個引數。第一次分割的結果,返回串中第乙個 ',' 之前的字串,也就是上面的程式第一次輸出abc。   

* 第二次呼叫該函式strtok(null,","),第乙個引數設定為null。結果返回分割依據後面的字串,即第二次輸出d。   

* strtok是乙個執行緒不安全的函式,因為它使用了靜態分配的空間來儲存被分割的字串位置   

* 執行緒安全的函式叫strtok_r,ca   

* 運用strtok來判斷ip或者mac的時候務必要先用其他的方法判斷'.'或':'的個數,

* 因為用strtok截斷的話,比如:"192..168.0...8..."這個字串,strtok只會擷取四次,中間的...無論多少都會被當作乙個key

*/

Linux簡單介紹

說到linux不得不說下unix,兩者操作起來差不多,linux的開發也借鑑了unix很多東西.計算機的發展史非常短.如果從1946第一台電子計算機eniac算起,才67年.剛好跟新中國的歷史差不多.當然了1946的之前已經有過很多跟計算機相關的研究和簡單應用了.對我們普通的程式設計師來說,在浩如煙...

Linux簡單介紹

在我們的專案開發完全之後,我們只能在內網訪問,要怎麼樣才能實現公網訪問呢?我們需要把我們的專案打包傳送到專業的伺服器上面才能實現公網訪問 軟體伺服器 web伺服器,把寫好的web資源共享到網路之中,方便別人能直接看到 硬體伺服器 安裝了伺服器軟體的電腦就是硬體伺服器 企業中的伺服器都是專業伺服器,每...

Linux簡單介紹

由芬蘭人 林納斯 託瓦斯在上大學期間由於 個人興趣愛好 去編寫的核心。核心仿照unix系統來的。特點 開源 不完全免費,有些系統中加入了收費的軟體 多使用者 系統可以保證個使用者之間的安全和隱私 支援多平台 可以在多種硬體平台上安裝和執行,如x86或嵌入系統,安裝系統的底層就是linux的核心。企業...