zoukankan      html  css  js  c++  java
  • 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)

  • 相关阅读:
    模块-- HASH
    模块 –SYS
    所谓情商高,就是要有分寸感
    20个很有用的CSS技巧
    CSS3中文手册基础知识
    赠书《JavaScript高级程序设计(第三版)》5本
    能走多远,取决于你与谁同行
    谷歌网站
    开发头条精选0724
    开发头条精选0723
  • 原文地址:https://www.cnblogs.com/Mr-ox/p/6394925.html
Copyright © 2011-2022 走看看