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()

posted @ 2020-05-07 17:24  一觉醒来写程序  阅读(5028)  评论(0编辑  收藏  举报