美文网首页
常用Unix API

常用Unix API

作者: m风满楼 | 来源:发表于2018-09-29 14:45 被阅读0次

    备用待查
    IO

    文件io

    #include <fcntl.h>
    #include <unistd.h>
    int open(const char *pathname, int oflag, ... mode_t mode);
    #成功返回文件描述符, 失败返回-1 
    int close(int filedes);
    #成功返回0, 失败返回-1
    off_t lseek(int filedes, off_t offset, int whence);
    #成功返回新的文件偏移量,出错返回-1 
    ssize_t read(int filedes, void *buf, size_t nbytes);
    #成功则返回读取到的字节数,若已到文件的结尾返回0,出错返回-1 
    ssize_t write(int filedes, void *buf, size_t nbytes);
    #成功则返回写入的字节数,出错返回-1 
    
    

    标准io

    打开 
    #include <stdio.h>
    #fopen 打开一个指定的文件
    FILE *fopen(const char *restrict pathname, const char *restrict type);
    #freopen 在一个指定的流上打开一个文件,比如在标准输出流上打开某文件
    FILE *freopen(const char *restrict pathname, const char *restrict type, FILE *restrict fp);
    #dopen 打开指定的文件描述符代表的文件。常用于读取管道或者其他特殊类型的文件,因为这些文件不能直接用fopen打开。
    FILE *dopen(int filedes, const char *type);
    # 成功返回FILE类型指针,出错返回NULL 
    # type 参数指定操作类型,入读写,追加等等。
    
    关闭
    #include <stdio.h>
    int flose(FILE *fp);
    # 成功返回0,出错返回EOF 
    每次一个字符的io
    #include <stdio.h>
    
    每次一个字符的IO流
    输入 
    int getc(FILE *fp);
    int fgetc(FILE *fp);
    int getchar(void);
    #上面三个函数的返回值为int,因为EOF常实现为-1,返回int就能与之比较 
    
    判断出错或者结束 
    int ferror(FILE *fp);
    int feof(FILE *fp);
    void clearerr(FILE *fp); 
    #清除error或者eof标志 
    
    输出
    int putc(int c, FILE *fp);
    int fputc(int c, FILE *fp);
    int putchar(int c);
    
    每次一行的IO流
    #include <stdio.h>
    #输入
    char *fgets(char *restrict buf, int n, FILE *restrict fp);
    char *gets(char *buf);
    #gets由于没有指定缓冲区,所以有可能造成缓冲区溢出,要小心 
    
    #输出
    int fputs(char *restrict buf, FILE *restrict fp);
    int puts(const char *buf);
    
    #格式化输出IO流
    printf 输出到标准输出
    fprintf 输出到指定流
    sprintf 输出到指定数组
    snprintf 输出到指定数组并在数组的尾端自动添加一个null字节
    
    #格式化输入IO流
    scanf 从标准输入获取
    fscanf 从指定流获取
    sscanf 从指定数组获取
    
    

    参考链接:
    《C++ Primer》第五版中文版学习笔记

    相关文章

      网友评论

          本文标题:常用Unix API

          本文链接:https://www.haomeiwen.com/subject/xgzvoftx.html