Linux系统调用函数(300多个)

news/2024/11/16 18:00:28/

前言:这里只是给出中文描述,方便浏览熟悉,具体情况建议去具体环境(Linux系统)下执行 1)man 2 systemcalls (查看所有系统调用函数);2)man 2 open (查看系统调用函数具体描述)。

 目录

一、初级I/O函数

二、文件管理操作函数

三、标准I/O函数

四、格式化输入输出函数

五、进程控制

六、进程间通信函数

七、信号函数

八、用户、组函数及环境变量函数

九、错误处理与内存分配函数

十、日志函数、动态函数与正则表达式函数

十一、时间函数

十二、socket相关函数

十三、字符测试函数

十四、数据转换函数

十五、字符串处理函数

十六、数学计算函数

十七、随机数及数据加密函数

十八、数据结构函数

十九、其他函数


一、初级I/O函数

1.1 close函数:关闭已经打开的文件

1.2 creat函数:创建一个文件

1.3 dup函数:复制文件描述符

1.4 dup2函数:复制文件描述符到指定的位置

1.5 fcntl函数:改变文件的状态

1.6 fsync函数:将缓冲区数据回写到磁盘文件

1.7 Lseek函数:移动文件的读写位置

1.8 open函数:打开一个文件

1.9 read函数:读取文件的数据

1.10 sync函数:将所有打开的文件写回磁盘

1.11 write函数:输出内容到文件

二、文件管理操作函数

2.1 access函数:判断进程是否具有访问文件的权限

2.2 alphasort函数:按照字母顺序排序目录结构

2.3 chdir函数:改变当前的工作目录

2.4 chmod函数:改变文件的权限

2.5 chown函数:改变文件的所有者

2.6 chroot函数:改变进程的根目录

2.7 closedir函数:关闭目录文件

2.8 fchdir函数:使用文件描述符改变当前的工作目录

2.9 fchmod函数:改变一个已经打开的文件的权限

2.10 fstat函数:得到一个打开文件的状态

2.11 truncate函数:改变一个打开文件的大小

2.12 ftw函数:遍历目录树

2.13 get_current_dir_name函数:取得当前的工作目录

2.14 getcwd函数:取得进程的当前工作目录

2.15 lchown函数:改变符号链接文件的拥有者

2.16 link函数:建立一个硬链接

2.17 lstat函数:得到符号链接的文件状态

2.18 nftw函数:遍历目录树

2.19 opendir函数:打开目录文件

2.20 readdir函数:读取目录文件的内容

2.21 readlink函数:读取符号链接文件本身的内容

2.22 realpath函数:将相对目录路径转换成绝对路径

2.23 remove函数:删除文件或者目录

2.24 rename函数:更改文件的名称或位置

2.25 rewinddir函数:回卷目录文件

2.26 seekdir函数:文件定位函数

2.27 stat函数:取得文件状态

2.28 symlink函数:创建一个符号链接

2.29 telldir函数:取得目录文件的读取位置

2.30 truncate函数:改变文件大小

2.31 umask:设置创建文件时使用的权限掩码

2.32 unlink函数:删除文件的一个硬链接

三、标准I/O函数

3.1 clearerr函数:清除错误标志

3.2 fclose函数:关闭流文件描述符

3.3 fdopen函数:转换文件描述符到文件指针

3.4 feof函数:文件结束判断函数

3.5 fflush函数:刷新流文件读写缓存

3.6 fgetc函数:从流文件中读取一个字符

3.7 fgetpos函数:返回流文件当前读写位置

3.8 fgets函数:从流文件中读出一行数据

3.9 fileno函数:获得流文件的文件描述符

3.10 fopen函数:打开文件

3.11 fputc函数:将字符写入流文件

3.12 fputs函数:将字符串写入流文件

3.13 fread函数:从流文件中读出数据

3.14 freopen函数:打开文件

3.15 fseek函数:移动流文件的读写位置

3.16 fsetpos函数:设置流文件当前读写位置

3.17 ftell函数:得到流文件的读取位置

3.18 fwrite函数:向流文件中写入数据

3.19 getc函数:从文件中读出一个字符

3.20 getchar函数:从标准输入中读入一个字符

3.21 gets函数:从标准输入中读入一行数据

3.22 mktemp函数:产生临时文件的文件名

3.23 putc函数:将字符写入文件

3.24 putchar函数:将字符输出到标准输出中

3.25 puts函数:将字符串输出在标准输出中

3.26 rewind函数:将流文件的读写位置移动到文件的起始位置

3.27 setbuf函数:设置文件缓冲区

3.28 setbuffer函数:设置文件缓冲区

3.29 setlinebuf函数:设置行缓冲模式

3.30 setvbuf函数:设置自定义文件缓冲区

3.31 tmpfile函数:建立临时的二进制文件

3.32 ungetc函数:将字符写回文件

四、格式化输入输出函数

4.1 fprintf函数:格式化输出到文件

4.2 fscanf函数:格式化从文件中读出数据

4.3 printf函数:格式化输出

4.4 scanf函数:格式化输入

4.5 snprintf函数:格式化字符输入

4.6 sprintf函数:格式化字符串打印

4.7 sscanf函数:格式化字符串取值

4.8 vfprintf函数:可变参数输出函数

4.9 vfscanf函数:格式化输入

4.10 vprintf函数:格式化输出函数

4.11 vscanf函数:格式化输入函数

4.12 vsnprintf函数:格式化字符串复制

4.13 vsprintf函数:格式化字符串复制

4.14 vsscanf函数:格式化字符输入

五、进程控制

5.1 abort函数:进程异常终止函数

5.2 atexit函数:进程终止处理函数

5.3 execl函数:执行文件函数

5.4 execle函数:执行文件的函数

5.5 execlp函数:从PATH环境变量中查找文件并执行

5.6 execv函数:执行文件

5.7 execve函数:执行文件

5.8 execvp函数:执行文件

5.9 exit函数:结束进程运行的函数

5.10 _exit函数:结束进程运行的函数

5.11 fork函数:建立一个新的进程

5.12 getgid函数:取得实际进程组ID

5.13 getegid函数:取得有效进程组ID

5.14 getpid函数:取得有效组ID

5.15 getppid函数:取得父进程的进程识别码

5.16 getpriority函数:取得进程执行优先级

5.17 longjmp函数:跳到原先setjmp存储的堆栈环境

5.18 on_exit函数:设置程序正常结束前调用的函数

5.19 setjmp函数:存储当前堆栈环境

5.20 setgid函数:设置进程的进程组ID

5.21 setuid函数:设置进程组ID

5.22 setpriority函数:设置程序进程优先级

5.23 siglongjmp函数:跳到原先sigset jmp存储的堆栈环境

5.24 sigsetjmp函数:存储当前堆栈环境和屏蔽的信号集

5.25 system函数:执行Shell命令

5.26 vfork函数:建立一个新的进程

5.27 wait函数:等待子进程中断或结束

5.28 waitpid函数:等待子进程中断或结束

5.29 wait3函数:等待进程结束并且输出子进程统计信息

六、进程间通信函数

6.1 ftok函数:获得项目相关的IPC键值

6.2 msgctl函数:消息队列操作函数

6.3 msgget函数:创建或打开消息队列

6.4 msgrcv函数:读取消息队列

6.5 msgsnd函数:向消息队列中写入消息

6.6 semctl函数:信号量操作函数

6.7 semget函数:创建或打开信号量

6.8 semop函数:释放或获取信号量

6.9 shmat函数:导入共享内存

6.10 shmctl函数:共享内存操作函数

6.11 shmdt函数:将共享内存从程序中脱离

6.12 shmget函数:创建共享内存

6.13 mkfifo函数:创建fifo管道函数

6.14 pclose函数:关闭管道文件

6.15 pipe函数:创建匿名管道

6.16 popen函数:创建管道文件

七、信号函数

7.1 alarm函数:内核定时器函数

7.2 kill函数:信号发送函数

7.3 pause函数:进程暂停执行函数

7.4 raise函数:向进程自身发送信号函数

7.5 sigaction函数:高级信号处理方式设置函数

7.6 sigaddset函数:添加信号到信号集函数

7.7 sigdelset函数:删除信号集中对应信号函数

7.8 sigemptyset函数:清空信号集函数

7.9 sigfillset函数:填充信号集函数

7.10 sigismember函数:测试某个信号是否在信号集中

7.11 signal函数:信号处理方式设置函数

7.12 sigpause函数:暂停进程直到信号到来

7.13 sigpending函数:查询未决信号

7.14 sigprocmask函数:信号屏蔽函数

7.15 sigsuspend函数:暂停直到信号到来

7.16 sleep函数:让进程休眠一段时间

八、用户、组函数及环境变量函数

8.1 clearenv函数:删除所有环境变量的值

8.2 cuserid函数:获得用户名函数

8.3 endgrent函数:关闭系统组文件函数

8.4 endpwent函数:关闭系统口令函数

8.5 endutent函数:关闭utmp文件

8.6 fgetgrent函数:从文件中读取组数据

8.7 fgetpwent函数:从文件中读取密码格式数据

8.8 getegid函数:获得有效(effective gid)组识别符

8.9 getenv函数:取得环境变量的值

8.10 geteuid函数:获得有效(effective uid)用户识别符

8.11 getgid函数:获得组识别符

8.12 getgrent函数:从文件/etc/group中读取组信息

8.13 getgrgid函数:从文件/etc/group中查找组信息

8.14 getgrnam函数:从文件/etc/group中查找组信息

8.15 getgroups函数:返回当前用户所属的组列表

8.16 getlogin函数:获取当前用户的账号名称

8.17 getpw函数:获取指定uid的用户信息

8.18 getpwent函数:读取/etc/passwd文件中的数据

8.19 getpwnam函数:以用户名获取用户信息

8.20 getpwuid函数:以用户ID获取用户信息

8.21 getuid函数:获取当前进程所属的用户ID

8.22 getutent函数:获取登录信息

8.23 getutid函数:获取指定用户ID的登录信息

8.24 getutline函数:查找指定的登录信息

8.25 initgroups函数:初始化组信息

8.26 logwtmp函数:添加登录记录信息

8.27 putenv函数:改变环境变量的值

8.28 pututline函数:添加登录信息

8.29 setegid函数:设置有效组ID

8.30 setenv函数:改变环境变量的值

8.31 seteuid函数:设置有效用户ID

8.32 setfsgid函数:设置进程的文件系统的组ID

8.33 setfsuid函数:设置进程的文件系统的用户ID

8.34 setgid函数:设置进程的组ID

8.35 setgrent函数:将文件etc/group的读写位置移动到起始位置

8.36 setgroups函数:设置当前进程的组识别符

8.37 setpwent函数:将文件etc/passwd的读写位置移动到起始位置

8.38 setregid函数:设置当前进程的真实以及有效组ID

8.39 setreuid函数:设置当前进程的真实以及有效用户ID

8.40 setuid函数:设置进程的用户ID

8.41 setutent函数:将文件utmp的读写位置移动到起始位置

8.42 unsetenv函数:清除环境变量的值

8.43 updwtmp函数:将登录数据记录写入utmp文件

8.44 utmpname函数:设置文件utmp的绝对位置

九、错误处理与内存分配函数

9.1 brk函数:改变数据段大小

9.2 calloc函数:内存分配函数

9.3 ferror函数:文件错误判断

9.4 free函数:释放动态分配内存函数

9.5 getpagesize函数:获得操作系统内存页大小函数

9.6 malloc函数:动态内存分配函数

9.7 mmap函数:文件映射函数

9.8 munmap函数:释放映射的内存地址

9.9 perror函数:错误原因输出函数

9.10 realloc函数:内存截取函数

9.11 sbrk函数:增加数据空间

9.12 strerror函数:错误代码查询

十、日志函数、动态函数与正则表达式函数

10.1 closelog函数:关闭信息记录

10.2 dlclose函数:关闭动态库文件

10.3 dlerror函数:动态函数出错处理

10.4 dlopen函数:打开动态库文件

10.5 dlsym函数:在动态库文件中查找函数

10.6 openlog函数:打开记录信息

10.7 regcomp函数:编译正则表达式

10.8 regerror函数:编译错误判断函数

10.9 regexec函数:执行正则匹配

10.10 regfree函数:释放正则模式串资源

10.11 syslog函数:输出记录信息

十一、时间函数

11.1 asctime函数:字符串时间操作函数

11.2 clock函数:计算运行时间函数

11.3 ctime函数:字符串时间函数

11.4 difftime函数:计算时间差函数

11.5 ftime函数:取得系统时间

11.6 gettimeofday函数:取得系统当前时间

11.7 gmtime函数:日历时间格式函数

11.8 localtime函数:获得当前系统时间

11.9 mktime函数:系统时间转换函数

11.10 settimeofday函数:系统时间设置函数

11.11 strftime函数:时间格式化输出函数

11.12 time函数:获得系统当前时间

11.13 tzset函数:设置系统时区变量tzname

十二、socket相关函数

12.1 accept函数:处理socket请求函数

12.2 bind函数:将socket描述符与一个套接口绑定

12.3 connect函数:与远程主机连接

12.4 endprotoent函数:结束网络协议的读取函数

12.5 endservent函数:关闭文件/etc/services

12.6 gethostbyaddr函数:由IP获得主机信息

12.7 gethostbyname函数:由主机名获得主机信息

12.8 getprotobyname函数:由协议名获取协议数据

12.9 getprotobynumber函数:由协议编号获取协议数据

12.10 getprotoent函数:读取文件/etc/rotoent中的网络协议数据

12.11 getservbyname函数:获得网络服务协议数据

12.12 getservbyport函数:获得网络服务协议数据

12.13 getservent函数:读取主机网络服务数据

12.14 getsockopt函数:获得指定socket描述符的状态

12.15 herror函数:错误原因输出函数

12.16 hstrerror函数:错误代码查询

12.17 htonl函数:地址字节顺序转换

12.18 htons函数:地址字节顺序转换

12.19 inet_addr函数:网络地址类型转换

12.20 inet_aton函数:网络地址类型转换

12.21 inet_ntoa函数:网络地址类型转换

12.22 listen函数:网络socket监听

12.23 ntohl函数:地址字节顺序转换

12.24 ntohs函数:地址字节顺序转换

12.25 recv函数:接收消息

12.26 recvfrom函数:接收消息

12.27 recvmsg函数:多缓冲读取数据

12.28 send函数:向远程主机发送数据

12.29 sendto函数:发送数据到远程主机

12.30 setprotoent函数:打开网络协议文件

12.31 setservent函数:打开网络服务文件

12.32 setsockopt函数:设置socket描述符的状态

12.33 shutdown函数:结束socket套接字

12.34 socket函数:创建网络套接字

十三、字符测试函数

13.1 isalnum函数:判断字符是否为英文字母或数字

13.2 isalpha函数:判断字符是否为英文字母

13.3 isascii函数:判断字符是否为ASCII字符

13.4 isblank函数:判断字符是否为空白字符

13.5 iscntrl函数:判断字符是否为ASCII的控制字符

13.6 isdigit函数:判断字符是否为阿拉伯数字

13.7 isgraph函数:判断字符是否为可打印字符

13.8 islower函数:判断字符是否为小写英文字母

13.9 isprint函数:判断字符是否为可打印字符

13.10 isspace函数:判断字符是否为空格字符

13.11 ispunct函数:判断字符是否为标点符号

13.12 isupper函数:判断字符是否为大写英文字母

13.13 isxdigit函数:判断字符是否为十六进制数字

十四、数据转换函数

14.1 atof函数:将字符串转换成浮点数

14.2 atoi函数:将字符串转换成整数

14.3 atol函数:将字符串转换成长整数

14.4 ecvt函数:将浮点数转换成字符串

14.5 fcvt函数:将浮点数转换成字符串

14.6 gcvt函数:将浮点数转换成字符串

14.7 strtod函数:将字符串转换成浮点数

14.8 strtol函数:将字符串转换成长整数

14.9 strtoul函数:将字符串转换成无符号长整数

14.10 toascii函数:将整数转换成合法的ASCII字符

14.11 tolower函数:将大写字母转换成小写字母

14.12 toupper函数:将小写字母转换成大写字母

十五、字符串处理函数

15.1 bcmp函数:比较两块内存中的内容

15.2 bcopy函数:复制内存中的内容

15.3 bzero函数:将一块内存内容全清零

15.4 ffs函数:在一个整数中查找第一个值为真的位

15.5 index函数:查找字符串中第一个出现的指定字符

15.6 memccpy函数:复制内存中的内容

15.7 memchr函数:在一块内存指定范围查找一个指定字符

15.8 memcmp函数:比较内存中存放的内容

15.9 memcpy函数:复制一块内存内容到另一块中

15.10 memfrob函数:对某个内存区重新编码

15.11 memmove函数:复制内存内容

15.12 memset函数:将某值填入到一块内存区域

15.13 rindex函数:查找字符串中最后一个出现的指定字符

15.14 strcasecmp函数:忽略大小写比较字符串

15.15 strcat函数:将一个字符串连接另一字符串的尾部

15.16 strchr函数:查找字符串中指定字符

15.17 strcmp函数:比较两个字符串

15.18 strcoll的函数:根据当前环境信息来比较字符串

15.19 strcpy函数:复制一个字符串的内容到另一个字符串中

15.20 strcspn函数:计算字符串中由非指定字符集字符组成的子字符串的长度

15.21 strdup函数:复制字符串内容

15.22 strfry函数:随机重组一个字符串

15.23 strlen函数:返回字符串长度

15.24 strncasecmp函数:忽略大小写比较两个字符串

15.25 strncat函数:将一个字符串的前n个字符连接到另一字符串的尾部

15.26 strncmp函数:比较两个字符串

15.27 strncpy函数:复制字符串

15.28 strpbrk函数:查找字符串中第一个出现的指定字符

15.29 strrchr函数:查找字符串中最后一个出现的指定字符

15.30 strspn函数:计算字符串中由指定字符集字符组成的子字符串的长度

十六、数学计算函数

16.1 abs函数:计算整数的绝对值

16.2 acos函数:计算反余弦的值

16.3 asin函数:计算反正弦的值

16.4 atan函数:计算反正切的值

16.5 atan2函数:计算反正切的值

16.6 ceil函数:计算大于或等于给定参数的最小整数

16.7 cos函数:计算余弦的值

16.8 cosh函数:计算双曲线的余弦值

16.9 div函数:计算两整数相除后的商和余数

16.10 exp函数:计算浮点数的指数

16.11 fabs函数:计算浮点数的绝对值

16.12 frexp函数:计算浮点数的尾数和指数

16.13 hypot函数:计算直角三角形斜边长度

16.14 labs函数:计算长整数的绝对值

16.15 ldexp函数:计算浮点数与2的exp次方的积

16.16 ldiv函数:计算两长整数相除后的商和余数

16.17 log函数:计算以e为底的对数值

16.18 log10函数:计算以10为底的对数值

16.19 modf函数:将浮点数分解为小数和整数两部分

16.20 pow函数:计算次方值

16.21 sin函数:取正弦的值

16.22 sinh函数:计算双曲线的正弦值

16.23 sqrt函数:计算浮点数的平方根

16.24 tan函数:计算角度的正切值

16.25 tanh函数:计算双曲线的正切函数值

十七、随机数及数据加密函数

17.1 crypt函数:对字符串使用DES算法编码

17.2 drand48函数:产生一个正的随机浮点数

17.3 erand48函数:产生一个正的随机浮点数

17.4 initstate:建立随机数状态数组

17.5 jrand48函数:产生一个长整型的随机数

17.6 lcong48函数:设置48位运算的随机数种子

17.7 lrand48函数:产生一个正的长整型随机数

17.8 mrand48函数:产生一个长整型随机数

17.9 nrand48函数:产生一个正的长整数随机数

17.10 rand函数:产生伪随机数

17.11 random函数:产生随机数

17.12 seed48函数:设置48位运算的随机数种子

17.13 setstate函数:建立随机数状态数组

17.14 srand函数:设置随机数种子

17.15 srand48函数:设置48位运算的随机数种子

17.16 srandom函数:设置随机数种子

17.17 getpass函数:取得用户输入密码字符串

十八、数据结构函数

18.1 bsearch函数:在有序数组中二分查找数据

18.2 hcreate函数:建立哈希表

18.3 hdestroy函数:删除哈希表

18.4 hsearch函数:在哈希表中查找关键数据

18.5 lfind函数:线性搜索

18.6 lsearch函数:线性搜索

18.7 qsort函数:使用快速排序法排列数组

18.8 tdelete函数:从二叉树中删除数据

18.9 tfind函数:搜索二叉树

18.10 tsearch函数:搜索二叉树

18.11 twalk函数:遍历二叉树

十九、其他函数

19.1 getopt函数:分析命令参数

19.2 isatty函数:判断文件描述符是否为终端

19.3 pselect函数:多路转接I/O

19.4 select函数:多路I/O转接

19.5 ttyname函数:返回终端机的名称


http://www.ppmy.cn/news/68900.html

相关文章

微服务注册中心之Zookeeper,Eureka,Nacos,Consul,Kubernetes区别

文章目录 1 微服务注册中心1.1 注册中心概念1.1.1 为什么需要注册中心1.1.2 如何实现一个注册中心1.1.3 如何解决负载均衡的问题 1.2 注册中心如何选型1.2.1 Zookeeper1.2.2 Eureka1.2.3 Nacos1.2.4 Consul1.2.5 Kubernetes 1 微服务注册中心 微服务的注册中心目前主流的有以下…

谷歌慌了!想发论文得审批,优先开发产品,让OpenAI没得看

来源 | 机器之心 ID | almosthuman2014 众所周知,谷歌就像人工智能领域的「黄埔军校」,自深度学习兴起后培养出了整整一代机器学习研究人员和工程师。很长一段时间里,谷歌就是领先 AI 技术的代名词。 人们已经习惯跟随谷歌的脚步&#xff0c…

【计网笔记02】计算机网络之数据链路层(封装成帧、差错控制、流量控制、信道访问控制、滑动窗口)

这篇文章,主要介绍计算机网络之数据链路层(封装成帧、差错控制、流量控制、信道访问控制、滑动窗口)。 目录 一、数据链路层 1.1、基本概念 1.2、封装成帧和透明传输 1.3、差错控制

如何通过编程竞赛来掌握C++编程

如何通过编程竞赛来掌握C编程 一、为什么选择编程竞赛作为学习C的方法1 提升编程能力的有效途径2 压力激发潜力,激发学习动力3 增加编程实践机会,锻炼实战技能4 社区交流,收获学习经验5 成果突显,提升自信心 二、如何准备参加编程…

Jetson TX2 GPIO权限设置,Jetson.GPIO提供的99-gpio.rules文件没有效果

文章目录 快速通道背景历程使用udevadm test进行调试 总结参考 快速通道 在此之前得确认1. 用户组gpio是否存在getent group | grep gpio (如果没创建就groupadd -r gpio创建)2. 当前用户是否已经加入gpio用户组groups | grep gpio(如果没加入就usermod -aG gpio 当前用户名加入…

26-2 vue-router

原始的方式好多东西需要我们自己去写,vue-router是一个集成好了的路由包,vue-router 官网 Vue Router | Vue.js 的官方路由 并非原始的东西就不好,只要是包就可能存在版本兼容问题,如果是简单的需求就建议用原始的方法 目录 1 …

货币简史:从物物交换到数字货币

货币简史 1. 物物交换阶段2. 一般等价物阶段3. 信用货币阶段4. 电子货币阶段5. 数字货币阶段 金钱是什么时候产生的呢,这取决于你如何定义金钱。 费利克斯马丁(FelixMartin)名为《金钱:未授权的传记》(Money:An Unauthorized Biography)书中…

源码解读guava cache get接口的秘密

guava cache是谷歌开源的一种本地缓存,实现原理类似于ConcurrentHashMap,使用segments分段锁,保证线程安全,支持高并发场景。同时支持多种类型的缓存清理策略,包括基于容量的清理、基于时间的清理、基于引用的清理等。…