Linux C函數庫大全


一、在線手冊

Linux c庫函數分類及示例:

http://net.pku.edu.cn/~yhf/linux_c/

線程不安全函數列表:http://kernel.org/doc/man-pages/online/pages/man7/pthreads.7.html

二、函數分類摘要

摘自《Linux C函數庫詳解詞典》徐千洋版 目錄,知道類函數名再使用man 3 函數查看就方便了。

字符測試函數

● isalnum(測試字符是否為英文字母或數字)

● isalpha(測試字符是否為英文字母)

● isascii(測試字符是否為ASCII碼字符)

● isblank(測試字符是否為空格字符)

● iscntrl(測試字符是否為ASCII碼的控制字符)

● isdigit(測試字符是否為阿拉伯數字)

● isgraph(測試字符是否為可打印字符)

● islower(測試字符是否為小寫英文字母)

● isprint(測試字符是否為可打印字符)

● isspace(測試字符是否為空格字符)

● ispunct(測試字符是否為標點符號或特殊符號)

● isupper(測試字符是否為大寫英文字母)

● isxdigit(測試字符是否為16進制數字)

時間函數

● asctime(將時間和日期以字符串格式表示)

● clock(取得進程占用CPU的大約時間)

● ctime(將時間和日期以字符串格式表示)

● difftime(計算時間差距)

● ftime(取得目前的時間和日期)

● gettimeofday(取得目前的時間)

● gmtime(取得目前的時間和日期)

● localtime(取得當地目前的時間和日期)

● mktime(將時間結構數據轉換成經過的秒數)

● settimeofday(設置目前的時間)

● strftime(格式化日期和時間)

● time(取得目前的時間)

● tzset(設置時區以供時間轉換)

數據結構函數

● bsearch(二元搜索)

● hcreate(建立哈希表)

● hdestory(刪除哈希表)

● hsearch(哈希表搜索)

● insque(加入一項目至隊列中)

● lfind(線性搜索)

● lsearch(線性搜索)

● qsort(利用快速排序法排列數組)

● rremque(從隊列中刪除一項目)

● tdelete(從二叉樹中刪除數據)

● tfind(搜索二叉樹)

● tsearch(二叉樹)

● twalk(走訪二叉樹)

錯誤處理函數

● ferror(檢查文件流是否有錯誤發生)

● perror(打印出錯誤原因信息字符串)

● streror(返回錯誤原因的描述字符串)

環境變量函數

● getenv(取得環境變量內容)

● putenv(改變或增加環境變量)

● setenv(改變或增加環境變量)

● unsetenv(清除環境變量內容)

記錄函數

● closelog(關閉信息記錄)

● openlog(准備做信息記錄)

● syslog(將信息記錄至系統日志文件)

進程通信(IPC)函數

● ftok(將文件路徑和計划代號轉為SystemcVIPCkey)

● msgctl(控制信息隊列的運作)

● msgget(建立信息隊列)

● msgrcv(從信息隊列讀取信息)

● msgsnd(將信息送入信息隊列)

● semctl(控制信號隊列的操作)

● semget(配置信號隊列)

● semop(信號處理)

● shmat(attach共享內存)

● shmctl(控制共享內存的操作)

● shmdt(detach共享內存)

● shmget(配置共享內存)

內存配置函數

● alloca(配置內存空間)

● brk(改變數據字節的范圍)

● calloc(配置內存空間)

● free(釋放原先配置的內存)

● getpagesize(取得內存分頁大小)

● malloc(配置內存空間)

● mmap(建立內存映射)

● munmap(解除內存映射)

● realloc(更改己配置的內存空間)

● sbrk(增加程序可用的數據空間)

數據轉換函數

● atof(將字符串轉換成浮點型數)1

● atoi(將字符串轉換成整型數)

● atol(將字符串轉換成長整型數)

● ecvt(將浮點型數轉換成字符串,19取四舍五入)

● fcvt(將浮點型數轉換為字符串,20取四舍五入)

● gcvt(將浮點型數轉換為字符串,21取四舍五入)

字符串處理函數

● bcmp(比較內存內容)

● bcopy(拷貝內存內容)

● bzero(將一段內存內容全清為零)

● ffs(在一整型數中查找第一個值為真的位)

● index(查找字符串中第一個出現的指定字符)

● memccpy(拷貝內存內容)

● memchr(在某一內存范圍中查找一特定字符)

● memcmp(比較內存內容)

● memcpy(拷貝內存內容)

● memfrob(對內存區域編碼)

● memmove(拷貝內存內容)

● memset(將一段內存空間填入某值)

● rindex(查找字符串中最后一個出現的指定字符)

● strcasecmp(忽略大小寫比較字符串)

● strcat(連接兩字符串)

● strchr(查找字符串中第一個出現的指定字符)

● strcmp(比較字符串)

● strcoll(采用目前區域的字符排列次序來比較字符串)

● strcpy(拷貝字符串)

● strcspn(返回字符串中連續不含指定字符串內容的字符數)

● strdup(復制字符串)

● strfry(隨機重組字符串內的字符)

● strlen(返回字符串長度)

● strncasecmp(忽略大小寫比較字符串)

● strncat(連接兩字符串)

● strncmp(比較字符串)

● strncpy(拷貝字符串)

● strpbrk(查找字符串中第一個出現的指定字符)

● strrchr(查找字符串中最后一個出現的指定字符)

● strspn(返回字符串中連續不合指定字符串內容的字符數)

● strstr(在一字符串中查找指定的字符串)

● strtok(分割字符串)

Soket相關函數

● accept(接受socket連線)

● bind(對socket定位)

● connect(建立socket連線)

● endprotoent(結束網絡協議數據的讀取)

● endservent(結束網絡服務數據的讀取)

● gethostbyaddr(由IP地址取得網絡數據)

● gethostbyname(由主機名稱取得網絡數據)

● getprotobyname(由網絡協議名稱取得協議數據)

● getprotobynumber(由網絡協議編號取得協議數據)

● getprotoent(取得網絡協議數據)

● getservbyname(依名稱取得網絡服務的數據)

● getservbyport(依port號碼取得網絡服務的數據)

● getservent(取得主機網絡服務的數據)

● getsockopt(取得socket狀態)

● herror(打印出網絡錯誤原因信息字符串)

● hstrerror(返回網絡錯誤原因的描述字符串)

● htonl(將32位主機字符順序轉換成網絡字符順序)

● htons(將16位主機字符順序轉換成網絡字符順序)

● inet_addr(將網絡地址轉成網絡二進制的數字)

● inet_aton(將網絡地址轉成網絡二進制的數字)

● inet_ntoa(將網絡二進制的數字轉換成網絡地址)

● listen(等待連接)

● ntohl(將32位網絡字符順序轉換成主機字符順序)

● ntohs(將16位網絡字符順序轉換成主機字符順序)

● recv(經socket接收數據)

● recvfrom(經socket接收數據)

● recvmsg(經socket接收數據)

● send(經socket傳送數據)

● sendmsg(經socket傳送數據)

● sendto(經socket傳送數據)

● setprotoent(打開網絡協議的數據文件)

● setservent(打開主機網絡服務的數據文件)

● setsockopt(設置socket狀態)

● shutdown(終止socket通信)

● socket(建立一個socket通信)

用戶和組函數

● cuserid(取得用戶帳號名稱)

● endgrent(關閉組文件)

● endpwent(關閉密碼文件)

● endutent(關閉utmp文件)

● fgetgrent(從指定的文件來讀取組格式)

● fgetpwent(從指定的文件來讀取密碼格式)

● getegid(取得有效的組識別碼)

● geteuid(取得有效的用戶識別碼)

● getgid(取得真實的組識別碼)

● getgrent(從組文件文件中取得帳號的數據)

● getgrgid(從組文件中取得指定gid的數據)

● getgrnan(從組文件中取得指定組的數據)

● getgroups(取得組代碼)

● getlogin(取得登錄的用戶帳號名稱)

● getpw(取得指定用戶的密碼文件數據)

● getpwent(從密碼文件中取得帳號的數據)

● getpwnam(從密碼文件中取得指定帳號的數據)

● getpwuid(從密碼文件中取得指定uid的數據)

● getuid(取得真實的用戶識別碼)

● getutent(從utmp文件中取得帳號登錄數據)

● getutid(從utmp文件中查找特定的記錄)

● getutline(從utmp文件中查找特定的記錄)

● initgroups(初始化組清單)

● logwtmp(將一登錄數據記錄到wtmp文件)

● pututline(將utmp記錄寫入文件)

● setegid(設置有效的組識別碼)

● seteuid(設置有效的用戶識別碼)

● setfsgid(設置文件系統的組識別碼)

● setfsuid(設置文件系統的用戶識別碼)

● setgid(設置真實的組識別碼)

● setgrent(從頭讀取組文件中的組數據)

● setgroups(設置組代碼)

● setpwent(從頭讀取密碼文件中的帳號數據)

● setregid(設置真實及有效的組識別碼)

● setreuid(設置真實及有效的用戶識別碼)

● setuid(設置真實的用戶識別碼)

● setutent(從頭讀取utmp/文件中的登錄數據)

● updwtmp(將一登錄數據記錄到wtmp文件)

● utmpname(設置utmp文件路徑)

隨機數函數

● drand48(產生一個正的浮點型隨機數)

● erand48(產生一個正的浮點型隨機數)

● initstate(建立隨機數狀態數組)

● jrand48(產生一個長整型數隨機數)

● lcong48(設置48位運算的隨機數種子)

● lrand48(產生一個正的長整型隨機數)

● mrand48(產生一個長整型隨機數)

● nrand48(產生一個正的長整型隨機數)

● rand(產生隨機數)

● random(產生隨機數)

● seed48(設置48位運算的隨機數種子)

● setstate(建立隨機數狀態數組)

● srand(設置隨機數種子)

● srand48(設置48位運算的隨機數種子)

● srandom(設置隨機數種子)

初級I/O函數

● close(關閉文件)

● creat(建立文件)

● dup(復制文件描述詞)

● dup2(復制文件描述詞)

● fcntl(文件描述詞操作)

● flock(鎖定文件或解除鎖定)

● fsync(將緩沖區數據寫回磁盤)

● lseek(移動文件的讀寫位置)

● mkstemp(建立唯一的臨時文件)

● open(打開文件)

● read(由己打開的文件讀取數據)

● sync(將緩沖區數據寫回磁盤)

● write(將數據寫入已打開的文件內)

格式化輸人輸出函數

● fprintf(格式化輸出數據至文件)

● fscanf(格式化字符串輸入)

● printf(格式化輸出數據)

● scanf(格式化字符串輸入)

● snprintf(格式化字符串復制)

● sprintf(格式化字符串復制)

● sscanf(格式化字符串輸入)

● vfprintf(格式化輸出數據至文件)

● vfcanf(格式化字符串輸入)

● vprintf(格式化輸出數據)

● vscanf(格式化字符串輸入)

● vsnprintf(格式化字符串復制)

● vsprintf(格式化字符串復制)

● vsscanf(格式化字符串輸入)

標准I/O函數

● clearerr(清除文件流的錯誤旗標)

● fclose(關閉文件)

● fdopen(將文件描述詞轉為文件指針)

● feof(檢查文件流是否讀到了文件尾)

● fflush(更新緩沖區)

● fgetc(由文件中讀取一個字符)

● fgetpos(取得文件流的讀取位置)

● fgets(由文件中讀取一字符串)

● fileno(返回文件流所使用的文件描述詞)

● fopen(打開文件)

● fputc(將一指定字符寫入文件流中)

● fputs(將一指定的字符串寫入文件內)

● fread(從文件流讀取數據)

● freopen(打開文件)

● fseek(移動文件流的讀寫位置)

● fsetpos(移動文件流的讀寫位置)

● ftell(取得文件流的讀取位置)

● fwrite(將數據寫至文件流)

● getc(由文件中讀取一個字符)

● getchar(由標准輸入設備內讀進一字符)

● gets(由標准輸入設備內讀進一字符串)

● mktemp(產生唯一的臨時文件文件名)

● putc(將一指定字符寫入文件中)

● putchar(將指定的字符寫到標准輸出設備)

● puts(將指定的字符串寫到標准輸出設備)

● rewind(重設文件流的讀寫位置為文件開頭)

● setbuf(設置文件流的緩沖區)

● setbuffer(設置文件流的緩沖區)

● setlinebuf(設置文件流為線性緩沖區)

● setvbuf(設置文件流的緩沖區)

● tmpfile(建立臨時文件)

● ungetc(將一指定字符寫回文件流中)

進程及流程控制

● abort(以異常方式結束進程)

● assert(若測試的條件不成立則終止進程)

● atexit(設置程序正常結束前調用的函數)

● execl(執行文件)

● execle(執行文件)

● execlp(從PATH環境變量中查找文件並執行)

● execv(執行文件)

● execve(執行文件)

● execvp(執行文件)

● exit(正常結束進程)

● _exit(結束進程執行)

● fork(建立一個新的進程)

● getpgid(取得進程組識別碼)

● getpgrp(取得進程組識別碼)

● getpid(取得進程識別碼)

● getppid(取得父進程的進程識別碼)

● getpriority(取得程序進程執行優先權)

● longjmp(跳轉到原先setjmp保存的堆棧環境)

● nice(改變進程優先順序)

● on_exit(設置程序正常結束前調用的函數)

● ptrace(進程追蹤)

● setjmp(保存目前堆棧環境)

● setpgid(設置進程組識別碼)

● setpgrp(設置進程組識別碼)

● setpriority(設置程序進程執行優先權)

● siglongjmp(跳轉到原先sigsetjmp保存的堆棧環境)

● sigsetjmp(保存目前堆棧環境)

● system(執行shell命令)

● wait(等待子進程中斷或結束)

● waitpid(等待子進程中斷或結束)

文件及目錄函數

● access(判斷是否具有存取文件的權限)

● alphasort(依字母順序排序目錄結構)

● chdir(改變當前的工作目錄)

● chmod(改變文件的權限)

● chown(改變文件的所有者)

● chroot(改變根目錄)

● closedir(關閉目錄)

● fchdir(改變當前的工作目錄)

● fchmod(改變文件的權限)

● fchown(改變文件的所有者)

● fstat(由文件描述詞取得文件狀態)

● ftruncate(改變文件大小)

● ftw(遍歷目錄樹)

● get_current_dir_name(取得當前的工作目錄)

● getcwd(取得當前的工作目錄)

● getwd(取得當前的工作目錄)

● lchown(改變文件的所有者)

● link(建立文件連接)

● lstat(由文件描述詞取得文件狀態)

● nftw(遍歷目錄樹)

● opendir(打開目錄)

● readdir(讀取目錄)

● readlink(取得符號連接所指的文件)

● realpath(將相對目錄路徑轉換成絕對路徑)

● remove(刪除文件)

● rename(更改文件名稱或位置)

● rewinddir(重設讀取目錄的位置為開頭位置)

● scandir(讀取特定的目錄數據)

● seekdir(設置下回讀取目錄的位置)

● stat(取得文件狀態)

● symlink(建立文件符號連接)

● telldir(取得目錄流的讀取位置)

● truncate(改變文件大小)

● umask(設置建立新文件時的權限遮罩)

● unlink(刪除文件)

● utime(修改文件的存取時間和更改時間)

● utimes(修改文件的存取時間和更改時間)

正則表達式

● regcomp(編譯正則表達式字符串)

● regerror(取得正則搜索的錯誤原因)

● regexec(進行正則表達式的搜索)

● regfree(釋放正則表達式使用的內存)

動態函數

● dlclose(關閉動態函數庫文件)

● dlerror(動態函數錯誤處理)

● dlopen(打開動態函數庫文件)

● dlsym(從共享對象中搜索動態函數)

管道相關函數

● mkfifo(建立具名管道)

● pclose(關閉管道I/O)

● pipe(建立管道)

● popen(建立管道I/O)

數學計算函數

● abs(計算整型數的絕對值)

● acos(取反余弦函數值)

● asin(取反正弦函數值)

● atan(取反正切函數值)

● atan2(取得反正切函數值)

● ceil(取不小於參數的最小整型數)

● cos(取余弦函數值)

● cosh(取雙曲線余弦函數值)

● div(取得兩整型數相除后的商及余數)

● exp(計算指數)

● fabs(計算浮點型數的絕對值)

● frexp(將浮點型數分為底數與指數)

● hypot(計算直角三角形斜邊長)

● labs(計算長整型數的絕對值)

● ldexp(計算2的次方值)

● ldiv(取得兩長整數相除后的商及余數)

● log(計算以e為底的對數值)

● log10(計算以10為底的對數值)

● modf(將浮點型數分解成整數與小數)

● pow(計算次方值)

● sin(取正弦函數值)

● sinh(取雙曲線正弦函數值)

● sqrt(計算平方根值)

● tan(取正切函數值)

● tanh(取雙曲線正切函數值)

信號函數

● alarm(設置信號傳送鬧鍾)

● kill(傳送信號給指定的進程)

● pause(讓進程暫停直到信號出現)

● psignal(列出信號描述和指定字符串)

● raise(傳送信號給目前的進程)

● sigaction(查詢或設置信號處理方式)

● sigaddset(增加一個信號至信號集)

● sigdelset(從信號集里刪除一個信號)

● sigemptyset(初始化信號集)

● sigfillset(將所有信號加入至信號集)

● sigismember(測試某個信號是否已加入至信號集里)

● signal(設置信號處理方式)

● sigpause(暫停直到信號到來)

● sigpending(查詢被擱置的信號)

● sigprocmask(查詢或設置信號遮罩)

● sigsuspend(暫停直到信號到來)

● sleep(讓進程暫停執行一段時間)

● isdigit(測試字符是否為阿拉伯數字)

數據加密函數

● crypt(將密碼或數據編碼)

● getpass(取得一密碼輸入)


其他函數

● getopt(分析命令行參數)

● isatty(判斷文件描述詞是否是為終端機)

● select(I/O多工機制)

● ttyname(返回一終端機名稱)

三、多線程不安全的函數 

asctime()

basename()

catgets()

crypt()

ctermid() //if passed a non-NULL argument

ctime()

dbm_clearerr()

dbm_close()

dbm_delete()

dbm_error()

dbm_fetch()

dbm_firstkey()

dbm_nextkey()

dbm_open()

dbm_store()

dirname()

dlerror()

drand48()

ecvt() //[POSIX.1-2001 only (function removed in POSIX.1-2008)]

encrypt()

endgrent()

endpwent()

endutxent()

fcvt() //[POSIX.1-2001 only (function removed in POSIX.1-2008)]

ftw()

gcvt() //[POSIX.1-2001 only (function removed in POSIX.1-2008)]

getc_unlocked()

getchar_unlocked()

getdate()

getenv()

getgrent()

getgrgid()

getgrnam()

gethostbyaddr() //[POSIX.1-2001 only (function removed in POSIX.1-2008)]

gethostbyname() //[POSIX.1-2001 only (function removed in POSIX.1-2008)]

gethostent()

getlogin()

getnetbyaddr()

getnetbyname()

getnetent()

getopt()

getprotobyname()

getprotobynumber()

getprotoent()

getpwent()

getpwnam()

getpwuid()

getservbyname()

getservbyport()

getservent()

getutxent()

getutxid()

getutxline()

gmtime()

hcreate()

hdestroy()

hsearch()

inet_ntoa()

l64a()

lgamma()

lgammaf()

lgammal()

localeconv()

localtime()

lrand48()

mrand48()

nftw()

nl_langinfo()

ptsname()

putc_unlocked()

putchar_unlocked()

putenv()

pututxline()

rand()

readdir()

setenv()

setgrent()

setkey()

setpwent()

setutxent()

strerror()

strsignal() //[Added in POSIX.1-2008]

strtok()

system()//[Added in POSIX.1-2008]

tmpnam() //if passed a non-NULL argument

ttyname()

unsetenv()

wcrtomb() //if its final argument is NULL

wcsrtombs() //if its final argument is NULL

wcstombs()

wctomb()


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM