Linux系统常用API总结

1.错误处理

  - fprintf()

  - perror()

2.通用I/O模型

  - fd = open(pathname, flags, mode)

  - numread = read(fd, buffer, count)

  - numwritten = write(fd, buffer, count)

  - status = close(fd)

  - off_t lseek(int fd, off_t offset, int whence):改变文件偏移量

  - int ioctl(int fd, int request, .../*argp*/)

  - int fcntl(int fd, int cmd, ...):文件控制操作

  - int dup(int oldfd):复制文件描述符,返回新的文件描述符,保证文件描述符最小

  - int dup2(int oldfd, int newfd):为oldfd创建副本,编号为newfd

  - ssize_t pread(int fd, void *buf, size_t count, off_t offset):在offset处读取

  - ssize_t pwrite(int fd, const void *buf, size_t count, off_t offset):在offset处写入

  - ssize_t readv(int fd, const struct iovec *iov, int iovcnt):分散输入

  - ssize_t writev(int fd, const struct iovec *iov, int iovcnt):集中输出

  - int truncate(const char *pathname, off_t length):文件截断

  - int ftruncate(int fd, off_t length)

  - int mkstemp(char *template):template最后6个字符必须为XXXXXX,如char template[] = "/tmp/somestringXXXXXX"

  - FILE *tmpfile(void):创建临时文件

3.进程

  - pid_t getpid(void):返回调用进程的进程号

  - pid_t getppid(void):返回父进程进程号

  - pid_t fork(void)

  - void exit(int status)

  - pid_t wait(int *status):等待回收子进程资源

  - pid_t waitpid(pid_t pid, int *status, int options)

  - int execve(const char *pathname, char *const argv[], char *const envp[])

  - int system(const char *command):执行任意shell命令

4.内存分配

  - void *malloc(size_t size)

  - void free(void *ptr)

  - void *calloc(size_t numitems, size_t size):用于给一组相同对象分配内存

  - void *realloc(void *ptr, size_t size):用来调整一块内存的大小,此块内存之前由malloc函数分配

  - void *alloca(size_t size):能够在堆栈上分配内存,无需手动释放

5.时间

  - time_t time(time_t *timep)

  - char *ctime(const time_t *timep):返回字符串表示,Wed Jun 8 14:2:32 2011

  - struct tm *gmtime(const time_t *timep):对应UTC格林时间分解

  - struct tm *localtime(const time_t *timep):对应系统本地时间分解

  - char *asctime(const struct tm *timeptr):输出格式与ctime相同

  - size_t strftime(char *outstr, size_t maxsize, const char *format, const struct tm *timeptr)

  - char *currTime(const char *format):内涵strftime按format参数格式化当前时间

  - char *strptime(const char *str, const char *format, struct tm *timeptr):将包含日期和时间的字符串转换成分解时间

6.文件I/O

  - int setvbuf(FILE *stream, char *buf, int mode, size_t size):控制stdio库使用缓冲的形式

  - int fflush(FILE *stream):刷新stdio缓冲区

  - int fsync(int fd):将缓冲数据和与打开文件描述符fd相关的所有元素刷新到磁盘上

  - int fileno(FILE *stream):将文件流指针转为文件描述符

  - FILE *fdopen(int fd, const char *mode)

  - int stat(const char *pathname, struct stat *statbuf):返回所命名文件的相关信息

  - int lstat(const char *pathname, struct stat *statbuf):返回连接文件本身信息

  - int fstat(int fd, struct stat *statbuf)

  - int access(const cahr *pathname, int mode):检查文件的访问权限

  - mode_t umask(mode_t mask):设置进程的umake值

  - int chmod(const char *pathname, mode_t mode):更改由pathname参数指定的文件权限

  - int fchmod(int fd, mode_t mode)

7.目录和链接

  - int link(const char *oldpath, const char *newpath):创建硬链接

  - int unlink(const char *pathname):移除硬链接

  - int rename(const char *oldpath, const char *newpath):既可以重命名文件,又可以将文件移至同一文件系统中的另一目录

  - int symlink(const char *filepath, const char *linkpath):软连接

  - int mkdir(const char *pathname, mode_t mode):创建新目录

  - int rmdir(const char *pathname)

  - int remove(const char *pathname)

  - DIR *opendir(const char *dirpath)

  - DIR *fdopendir(int fd)

  - struct dirent *readdir(DIR *dirp)

  - void rewinddir(DIR *dirp)

  - int closedir(DIR *dirp)

  - int dirfd(DIR *dirp):返回与dirp目录流相关联的文件描述符

  - int nftw(const char *dirpath, int (*func) const char *pathname, const struct stat *statbuf, int typeflag, struct FIW *ftwbuf), int nopenfd, int flags):递归遍历目录

  - char *getcwd(char *cwdbuf, size_t size):获取当前工作目录

  - int chdir(const char *pathname):改变当前工作目录

  - int fchdir(int fd)

8.信号

  - void(*signal(int sig, void (*handler)(int)) )(int):改变信号处理

  - int kill(pid_t pid, int sig):发送信号

  - int raise(int sig):向自身发送信号

  - int pause(void):将进程挂起,直到有信号中断

  - unsigned int sleep(unsigned int seconds)

  - int timer_create(clockid_t clockid, struct sigevent *evp, timer_t *timerid):创建定时器

  - int timer_settime(timer_t timerid, int flags, const struct itimerspec *value, struct itimerspec *old_value):设置定时器

  - int timer_gettimer(timer_t timerid, struct itimerspec *curr_value):获取定时器的当前值

  - int timer_delete(timer_t timerid)

9.线程

  - int pthread_create(pthread_t *thread, const pthread_attr_t *attr, void *(*start)(void *), void *arg):创建线程

  - void pthread_exit(void *retval):终止线程

  - pthread_t pthread_self(void):获取线程ID

  - int pthread_equal(pthread_t t1, pthread_t t2):检查两个线程ID是否相同

  - int pthread_join(pthread_t thread, void **retval):等待线程终止,结束后返回

  - int pthread_detach(pthread_t thread):将thread线程标记处于分离状态,系统在线程终止时自动清理并移除

  - int pthread_mutex_lock(pthread_mutex_t *mutex):加锁和解锁互斥量

  - int pthread_mutex_unlock(pthread_mutex_t *mutex)

10.进程间通信

  //管道

  - int pipe(int filedes[2]):创建无名管道

  - int mkfifo(const char *pathname, mode_t mode):创建有名管道

  //消息队列

  - int msgget(key_t key, int msgflg):创建一个新消息队列或取得一个既有队列的标识符

  - int msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg):向消息队列写入一条消息

  - ssize_t msgrcv(int msqid, void *msgp, size_t maxmsgz, long msgtyp, int msgflg):从消息队列读取并删除消息

  - int msgctl(int msqid, int cmd, struct msqid_ds *buf):在标识符Wiemsqid的消息队列上执行控制操作

  //信号量

  - int semget(key_t key, int nsems, int semflg):创建一个新信号量集

  - int semctl(int semid, int semnum, int cmd, ...):在一个信号量集上执行各种控制操作

  //共享内存

  - int shmget(key_t key, size_t size, int shmflg):创建一个新共享内存段或获取一个既有段的标识符

  - void *shmat(int shmid, const void *shmaddr, int shmflg):将shmid标识的共享内存段

  - int shmdt(const void *shmaddr):当不需要访问共享内存时,使用shmdt分离

  - int shmctl(int shmid, int cmd, struct shmid_ds *buf)

  //文件映射

  - void *mmap(void *addr, size_t length, int prot, int flags, int fd, off_t offset):在调用进程的虚拟地址空间中创建一个新映射

  - int munmap(void *addr, size_t length):解除映射区域

  - int msync(void *addr, size_t length, int flags):同步映射区域

11.网络

  //流式套接字

  - int socket(int domain, int type, int protocol):创建一个socket

  - int bind(int sockfd, const struct sockaddr *addr, socklen_t addrlen):将socket绑定到地址

  - int listen(int sockfd, int backlog):监听接入连接

  - int accept(int sockfd, struct sockaddr *addr, socklen_t addrlen):接受连接

  - int connect(int sockfd, const struct sockaddr *addr, socklen_t addrlen):连接到对等socket

  - int close(int fd):连接终止

  //数据包套接字

  - ssize_t recvfrom(int sockfd, void *buffer, size_t length, int flags, struct sockaddr *src_addr, socklen_t *addrne)

  - ssize_t sendto(int sockfd, const void *buffer, size_t length, int flags, const struct sockaddr *dest_addr, socklen_t addrlen)

时间: 2024-12-28 11:11:31

Linux系统常用API总结的相关文章

Linux系统常用基础命令

Linux系统常用基础命令 cd->切换目录: pwd->显示当前所在的绝对目录; chmod->用于改变linux系统文件或目录的访问权限; ls->不仅可以查看linux文件夹包含的文件,而且可以查看文件权限(包括目录.文件夹.文件权限)查看目录信息等等; mkdir->创建文件夹; rm->删除一个目录中的一个或多个文件或目录; rmdir->从一个目录中删除一个或多个子目录项,删除某目录时也必须具有对其父目录的写权限;注意:不能删除非空目录; mv-&g

linux系统 (常用命令)

linux系统 (常用命令) cat tail -f 日 志 文 件 说    明 /var/log/message 系统启动后的信息和错误日志,是Red Hat Linux中最常用的日志之一 /var/log/secure 与安全相关的日志信息 /var/log/maillog 与邮件相关的日志信息 /var/log/cron 与定时任务相关的日志信息 /var/log/spooler 与UUCP和news设备相关的日志信息 /var/log/boot.log 守护进程启动和停止相关的日志消息

Linux系统常用命令(2)

上一篇博客:Linux系统常用命令:https://www.cnblogs.com/yanxuezhengwanqi/p/11504199.html 文件(夹)相关命令: 文件类型: ls -l 文件夹路径:查看指定路径下未被隐藏的文件的详细信息 ls -al 文件夹路径:查看指定路径下所有文件的详细信息 ls -dl 文件夹路径:查看该文件夹信息 第一列:文件类型和权限,共10位. 第1位是文件类型,-表示二进制文件,d表示目录文件,l表示链接文件. 注意:第1位是-表示二进制文件,后面9位出

【2016-10-11】Linux系统常用的关机或重启命令shutdown、reboot、halt、poweroff、init 0及init 6的联系与区别

Linux下常用的关机/重启命令一般包括: shutdown.reboot.halt.poweroff等,当然了我们可以使用init 运行等级runlevel 0即halt来关机,或使用init 运行等级runlevel 6即reboot来执行重启. 当然了这些关机或重启的方式也有一些细微差别. 首先明确一下linux/redhat系的runlevel运行级别和debian系的runlevel是有所不同的. redhat系的runlevel定义如下: runlevel 0: halt 系统停机状

Linux系统常用工具集

整理Linux系统下一些日常工作中常用工具,旨在提高效率: 1.截图软件Shutter 2.通讯聊天工具pidgin 3.守护进程工具daemontools 4.远程桌面服务TigerVNC 5.Maven软件包管理工具Apache Archiva 持续更新补充中.......

Linux系统常用命令权威指南

<一>线上查询及帮助命令(2)1.man man [选项] [命令] 查看命令帮助,命令的词典,更复杂的还有info,但不常用. #man cd-a 显示所有的手册页,不只是显示第一个-f 只显示命令的功能,而不显示详细的说明文件,跟whatis命令相同-w 不显示手册内容,只显示将被格式化和显示的文件所在位置2.help help [选项] [命令] 查看Linux内置命令的帮助. help cd -d 显示命令简短主题描述 -s 显示命令简短语法描述 <二>文件和目录操作命令(

Linux系统常用编辑器

一.    linux常见的编辑器 在Linux系统中,有许多种文本编辑工具.常见的文件编辑器如下: vi VIM EMACS gedit OpenOffice 二.     vim使用 vim提供下面几种模式 命令模式(其它模式->ESC) 控制光标移动,删除字符,段落复制 编辑/插入模式(命令模式->a.i.o.A.I.O) 新增文字及修改文字 末行模式(命令模式-> :) 保存文件,离开vi,以及其他设置 可视化模式(命令模式-> v) 选取文件内容.复制.剪切 查询模式(命

查看linux系统常用的命令,Linux查看系统配置常用命令

一.linux CPU大小  cat /proc/cpuinfo |grep "model name" && cat /proc/cpuinfo |grep "physical id" 说明:Linux下可以在/proc/cpuinfo中看到每个cpu的详细信息.但是对于双核的cpu,在cpuinfo中会看到两个cpu.常常会让人误以为是两个单核的cpu.其实应该通过Physical Processor ID来区分单核和双核.而Physical Pr

Linux系统常用命令nl详解

nl命令在linux系统中用来计算文件中行号.nl 可以将输出的文件内容自动的加上行号!其默认的结果与 cat -n 有点不太一样,nl 可以将行号做比较多的显示设计,包括位数与是否自动补齐 0 等等的功能.本文和大家分享的主要是linux中nl命令的相关用法,希望对大家学习linux有所帮助. 1.命令格式: nl [选项]- [文件]- 2.命令参数: -b :指定行号指定的方式,主要有两种: -b a :表示不论是否为空行,也同样列出行号(类似 cat -n): -b t :如果有空行,空