linux应用程序编程应该要学习的函数使用列表

linux应用程序编程应该要学习的函数使用列表

linux应用层编程相关的man page,具体包括的命令和函数,请参考https://www.kernel.org/doc/man-pages/

select()、pselect()、poll()、epoll(), epoll_create(),epoll_wait(),epoll_ctl(),close()==同时监控多个fd的输入、输出

inotify机制,inotify_init(),inotify_add_watch(),inotify_rm_watch(),read(),epoll_ctl(), close() 监控文件或目录的变化 ==参考代码,android的EventHub.cpp实现。

regcomp()、regexec()、regerror()、regfree()、 ===正则表达式处理

open()、close()、lseek()、read()、write()、dup()、dup2()、ioctl()、sync()、fsync()、fcntl()、ioctl()、stat()、fstat()、umask()、chmod()、chown()、unlink()、utimes、mkdir、fopen()、fclose()、readv、writev(struct iovec)、readn、writen、feof、ferror、fgetc、fgetpos、fgets、fread、ftruncate、truncate ===文件操作
dprintf、vdprintf ===打印到fd上。
fprintf、fputc、fputs、putc、 ===打印到FILE上
putchar、puts、putchar_unlocked、putc_unlocked、
fscanf、fseek、ftell、rewind、fgetpos、fsetpos、fseeko、ftello、 ======FILE文件
fwrite ====写FILE*
getc、getchar、getchar_unlocked、getc_unlocked、ungetc、 gets(此函数deprecated了)
perror、errno、strerror
pread, pwrite ===== read from or write to a file descriptor at a given offset
printf、scanf、snprintf、sprintf 、sscanf、vdprintf、vfprintf、vfscanf、vprintf、vscanf、vsnprintf、vsprintf、vsscanf ====字符串处理函数
readdir、
readlink、readlinkat、symlink、symlinkat ========= symbolic link相关

creat()、openat()、fdatasync()、fstatat()、lstat()、fstat、()、fchmod()、fchmodat()、fchown()、fchownat()、lchown()、link、linkat、unlinkat、opendir、rewinddir、seekdir mkdtemp 创建唯一的temporary directory
mkstemp, mkostemp, mkstemps, mkostemps - create a unique temporary file

remove、rename、renameat、futimens、utimensat、mkdirat、rmdir、chdir、fchdir、getcwd、fdopen、freopen、fdopendir、fflush、telldir、
access()、faccessat检查进程访问文件权限
flockfile、ftrylockfile、funlockfile ==锁FILE
clearerr、feof、ferror、fileno
futimens、utimensat、 改变文件时间戳
strftime、strftime_l、strptime、 格式化日期和时间
fwide 判断FILE
是wide-character oriented或者byte-character oriented
getcwd、getwd、get_current_dir_name 获取当前工作目录
tmpfile、tmpnam、tmpnam_r、
setbuf、setbuffer、setlinebuf、setvbuf =====FILE stream处理函数。

fmemopen、open_memstream、open_wmemstream、 ===open memory as stream

fpathconf、pathconf ===获取文件的配置值

aio_read(struct aiocb, 需要注册信号处理函数)、aio_write、aio_fsync、aio_error、aio_return、aio_suspend、aio_cancel、lio_listio ===异步i/o操作

sysconf()、patchconf()、fpatchconf()、查询配置函数
uname 查询系统名和信息

getrlimit、setrlimit 进程环境函数、包括进程资源限制量

fork、vfork、exit、_exit、wait、waitpid、waitid、wait3、wait4、exec、execl、execle、execlp、execv、execve、execvp、fexecve 、system 进程控制函数
getegid、getgid ==获取进程组identity
getopt、getopt_long、getopt_long_only 用于parse 命令行的输入参数
getenv 获取进程环境变量
geteuid、getuid、seteuid、setreuid 、setuid === 获取user identity
getpgid、setpgid、setpgrp、getpgrp、setegid、setgid、setregid === 设置进程组
getsid、 setsid ==== 获取session id
getpid、getppid === 进程id
signal、kill、alarm 、sigprocmask、sigpending、sigaction、sigsuspend、sigwait、strsignal、abort、system、sleep、nanosleep、clock_nanosleep ==信号函数
psignal, psiginfo、sigemptyset, sigfillset, sigaddset, sigdelset, sigismember、 =====print signal message
atexit、 ===注册退出时回调函数
getpriority、setpriority、nice、sched_setscheduler 获取、设置进程调度优先级。
raise、pause、sigqueue、sigsetjmp、siglongjmp、
setjmp、sigsetjmp、longjmp、siglongjmp stack context控制函数,如果调用者返回,那么保存的环境就invalidated了

/etc/group 、 getgrent、endgrent、setgrent、getgrgid、getgrnam、getgrnam_r、getgrgid_r 、getgroups、setgroups、initgroups === 用户组相关信息的函数 本机中的所有用户组信息。
getlogin、getlogin_r、cuserid 获取用户名

pthread_create、pthread_exit、pthread_join、pthread_atfork、pthread_cleanup、pthread_equal、pthread_cond_init、pthread_cond_signal、pthread_cond_broadcast、pthread_cond_wait、pthread_cond_timedwait、pthread_cond_destroy、pthread_attr_init、pthread_attr_xxx系列函数、pthread_mutex_init、pthread_mutex_xxx系列函数、pthread_barrierattr_xxx系列函数、pthread_barrier_xxx系列函数、pthread_condattr_xxx系列函数、pthread_cond_xxx系列函数、pthread_detach、pthread_mutexattr_xxx系列函数、pthread_rwlockattr_xxx系列函数、pthread_rwlock_xxx系列函数、pthread_spin_xxx系列函数、pthread_sigmask、 ==== pthread系列函数
pthread_mutex_timedlock

sem_close 、sem_destroy、sem_getvalue、sem_init、sem_open、sem_post、sem_timedwait、sem_trywait、sem_unlink、sem_wait、 ====同步机制 信号量semaphore、

popen、pclose、pipe、mkfifo、 进程间通信(管道、fifo、system v ipc(包括共享内存、消息队列、信号灯))
mkfifoat、
msgget、semget、semctl、semop、shmget、shmat、shmctl、shmdt、、msgctl、msgrcv、msgsnd、
ftok、

socket、socketpair、accept、bind、connect、listen、shutdown、send、sendmsg、sendto、recvmsg、recv、recvfrom既然socket也是个fd所以也可以使用read、write、select等 socket通信、进程间通信
getsockopt、setsockopt、 获取或者设置socket option
htonl、htons、ntohl、ntohs、
inet_ntop、inet_pton、 ipv4、ipv6地址 文本和二进制格式转换。
getpeername、
getaddrinfo、freeaddrinfo、gai_strerror、gethostbyname、getservbyname 网络地址和服务转换
gethostname、sethostname
gethostbyname, gethostbyaddr, sethostent, gethostent, endhostent, h_errno, herror, hstrerror, gethostbyaddr_r, gethostbyname2, gethostbyname2_r, gethostbyname_r, getsockname、
gethostent_r 获取network host entry
sockatmark、

getnameinfo、getservbyport、getnetbyaddr、getnetbyname、getnetent、setnetent、endnetent、 关于network entry相关
getservent、getservbyname、getservbyport、setservent、endservent 获取service entry

tcflush、tcsetattr、cfgetispeed、 cfgetospeed、cfsetispeed、 cfsetospeed 、isatty 串口通信
termios, tcgetattr, tcsetattr, tcsendbreak, tcdrain, tcflush, tcflow, cfmakeraw, cfgetospeed, cfgetispeed, cfsetispeed, cfsetospeed, cfsetspeed ===get and set terminal attributes, line control, get and set baud rate
tcgetpgrp、tcsetpgrp、tcgetsid
ttyname、ttyname_r

malloc、calloc、free、brk、sbrk、realloc 堆内存分配函数

mmap、munmap、msync、mprotect、mremap ===内存映射 相关

clock_getres、clock_gettime、clock_settime、clock_nanosleep、 === clock和time相关函数
nanosleep、usleep、sleep === sleep一定时间函数
gettimeofday、settimeofday === get/set time
asctime, ctime, gmtime, localtime, mktime, asctime_r, ctime_r, gmtime_r, localtime_r 、struct tm、time_t ===转换transform date and time to broken-down time or ASCII
time、
times、 get process time

/etc/protocols 、 getprotobyname、getprotobynumber、getprotoent、setprotoent、endprotoent 获取协议entry 本主机中的所有协议。

/etc/passwd、NIS、LDAP等管理密码相关的函数、 getpwent、setpwent、endpwent、getpwnam、getpwuid、getpwname_r、getpwuid_r 获取password file entry(包括用户名、password、用户id、组id、用户信息、home目录、shell program)。

getspnam, getspnam_r, getspent, getspent_r, setspent, endspent, fgetspent, fgetspent_r, sgetspent, sgetspent_r, putspent, lckpwdf, ulckpwdf ===get shadow password file entry

closelog, openlog, syslog, vsyslog、setlogmask ===== send messages to the system logger

posix_openpt、grantpt、ptsname、unlockpt、 psy伪终端相关

putenv、setenv 、unsetenv ===修改或增加环境变量

具体文档链接见:
链接: https://pan.baidu.com/s/1LHslhWLwx7hwvzky7czHHw 提取码: keh2

另外我的相关培训视频请看:
欢迎观看我发布的各个课程: https://edu.51cto.com/lecturer/8896847.html

另外我的免费的linux各种驱动开发课程如下:
https://edu.51cto.com/course/17138.html

原文地址:https://blog.51cto.com/8906847/2367924

时间: 2024-11-10 21:53:01

linux应用程序编程应该要学习的函数使用列表的相关文章

Linux 高性能服务器编程——高级I/O函数

重定向dup和dup2函数 [cpp] view plaincopyprint? #include <unistd.h> int dup(int file_descriptor); int dup2(int file_descriptor_one, int file_descriptor_two); dup创建一个新的文件描述符, 此描述符和原有的file_descriptor指向相同的文件.管道或者网络连接. dup返回的文件描述符总是取系统当前可用的最小整数值. dup2函数通过使用参数f

Linux高性能server编程——高级I/O函数

 高级I/O函数 pipe函数 pipe函数用于创建一个管道,实现进程间的通信. #include <unistd.h> int pipe(int pipefd[2]); 通过pipe函数创建的文件描写叙述符fd[0]和fd[1]分别构成管道的两端,往fd[1]写入的数据能够从fd[0]读出,不能反过来.管道内部传输的数据时字节流,和TCP字节流概念同样,但有差别,管道本身拥有一个容量限制,它规定假设应用程序不将数据从管道读走的话,该管道最多能被写入多少字节的数据.管道容量阿东小默认是65

Linux高性能服务器编程——高级I/O函数

 高级I/O函数 pipe函数 pipe函数用于创建一个管道,实现进程间的通信. #include <unistd.h> int pipe(int pipefd[2]); 通过pipe函数创建的文件描述符fd[0]和fd[1]分别构成管道的两端,往fd[1]写入的数据可以从fd[0]读出,不能反过来.管道内部传输的数据时字节流,和TCP字节流概念相同,但有区别,管道本身拥有一个容量限制,它规定如果应用程序不将数据从管道读走的话,该管道最多能被写入多少字节的数据.管道容量阿东小默认是6553

Linux 高性能server编程——高级I/O函数

重定向dup和dup2函数 #include <unistd.h> int dup(int file_descriptor); int dup2(int file_descriptor_one, int file_descriptor_two); dup创建一个新的文件描写叙述符, 此描写叙述符和原有的file_descriptor指向同样的文件.管道或者网络连接. dup返回的文件描写叙述符总是取系统当前可用的最小整数值. dup2函数通过使用參数file_descriptor_two指定新

linux应用程序开发-文件编程-系统调用方式

在看韦东山视频linux驱动方面有一些吃力,究其原因,虽然接触过linux应用程序编程,但是没有深入去理解,相关函数用法不清楚,正好看到国嵌视频对这一方面讲的比较透彻, 所以把学习过程记录下来,也作为linux应用程序开发的一个系列吧! 文件编程有两种方式,一是系统调用方式,二是库函数调用. 前者依赖特定的平台,后者不依赖平台. 系统调用:创建 int creat(const char *filename,mode_t mode); filename:要创建的文件名 mode:创建模式 S_IR

linux 2440 LCD 应用程序编程

一.Linux的帧缓冲设备 帧缓冲(framebuffer)是 Linux 为显示设备提供的一个接口,把显存抽象后的一种设备,他允许上层应用程序在图形模式下直接对显示缓冲区进行读写操作.这种操作是抽象的,统一的.用户不必关心物理显存的位置.换页机制等等具体细节.这些都是由Framebuffer 设备驱动来完成的.帧缓冲驱动的应用广泛,在 linux 的桌面系统中,Xwindow 服务器就是利用帧缓冲进行窗口的绘制.尤其是通过帧缓冲可显示汉字点阵,成为 Linux汉化的唯一可行方案. 帧缓冲设备对

linux编程中接收主函数返回值以及错误码提示

程序A创建子进程,并调用进程B,根据不调用的不同情况,最后显示结果不同. #include <stdio.h> #include <unistd.h> #include <sys/wait.h> #include <sys/types.h> #include <errno.h> int main() { pid_t pid, rpid; int stat; if ((pid = fork()) < 0) { perror("for

深入浅出Linux工具与编程(socket 函数)

1.   基本套接字函数 (1)socket函数原型 socket(建立一个socket文件描述符) 所需头文件 #include <sys/types.h> #include <sys/socket.h> 函数说明 建立一个socket文件描述符 函数原型 int socket(int domain, int type, int protocol) 函数传入值 domain AF_INET:IPv4协议 AF_INET6:IPv6协议 AF_LOCAL:Unix域协议 AF_RO

谢烟客---------Linux之脚本编程---函数

函数.函数名.函数定义.变量作用域.函数返回值.参数.递归 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 函数:一段具有特定功能的代码 函数名:为这段代码所取的名字,可以通过函数名完成特定功能 注意: 函数名出现的地方即为 函数对应的代码替换的地方 (变量名出现的地方即为 变量所对的值替换的地方) 函数的作用: 代码重用:过程式编程中,代码重用的重要组件. 模块化编程: 结构化编程: 函数的特点: 1)没有执行入口,只能被有