通用函數庫在頭文件stdlib.h中聲明,比較龐大,主要分為以下幾大類:存儲分配、隨機數生成、數字轉換與整型運算、程序退出與環境通信、搜索與排序、多字節與寬字符的轉換。由于汲及到存儲分配、環境通信等,因此它們的大多數也依賴于操作系統。glibc中,通用函數庫的核心實現在stdlib和malloc兩個目錄下。
stdlib.h中導出的所有標準接口如下:
1、malloc,calloc,realloc,free:內存分配與釋放。分配的內存不進行任何初始化,保證對任何數據類型正確對齊
2、rand,srand,RAND_MAX:產生偽隨機數,rand范圍的上限由RAND_MAX指定,至少為32767
3、atof,atoi,atol,atoll:將字符串的初始部分轉換成相應類型的數字。
4、strtod,strtof,strtold,strtol,strtoll,strtoul,strtoull:同上,但比上面的轉換函數更完善。實際上glibc中,上面的幾個轉換函數都是直接調用這里的函數來實現的。
5、abort,atexit,exit,_Exit,EXIT_FAILURE,EXIT_SUCCESS:終止程序。exit在終止前會調用用atexit注冊的各個函數,而abort和_Exit則不會。
6、getenv:返回指定環境參數name的對應值。
7、system:將字符串參數傳遞到操作系統的shell中,按實現定義的執行它。
8、qsort,bsearch:qsort對含有count個元素(每個元素的大小為size)的數組base按升序排序、bsearch在數組中搜索元素key。
9、abs,labs,llabs:返回參數的絕對值。
10、div,ldiv,lldiv:計算n除以d的商和余數,放在div_t,ldiv_t,lldiv_t結構中返回,結構中的成員quot=n/d,成員rem=n%d。
11、mblen,mbtowc,wctomb,MB_CUR_MAX:判斷s的前n個字節是否是有效的多字節字符、多字節字符s轉換成寬字符pwc、寬字符pwc轉換成多字節字符s、 MB_CUR_MAX表示多字節字符的最大字節數。
12、mbstowcs,wcstombs:多字節字符串與寬字符串之間的轉換,返回轉換后的字符數(不包括null終止符),發現錯誤則返回-1(轉換成size_t)。
新聞熱點
疑難解答
圖片精選