欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Unix环境高级编程笔记:5、标准IO库

程序员文章站 2022-05-07 18:17:44
...
1、fwide 
    设置流的定向
    #include <stdio.h>
    #include <wchar.h>
    int fwide(FILE *fp,int mode);
    mode参数值为负,fwide试图使指定的流是字节
    mode参数值为正,fwide将试图使指定的流是宽定向
    mode参数值为0,fwide将不试图设置流的定向,返回标识该流的定向的值
 
2、标准输入、标准输出、标准出错
    对一个进程预定义了三个流,并且这三个流可以自动被进程使用。标准输入、标准输出、标准出错
    STDIN_FILENO        
    STDOUT_FILENO
    STDERR_FILENO
    这三个标准io流通过预定义文件指针stdin、stdout、stderr加以引用   <stdio.h>
 
3、标准I/O提供三种类型缓冲
    全缓冲
    行缓冲
    不带缓冲
 
    更改缓冲类型
    #include <stdio.h>
    void setbuf(FILE *restrict fp,char *restrict buf);
    void setvbuf(FILE *restrict fp,char *restrict buf,int mode,size_t size);
 
    任何时间,可以强制冲洗一个流
    #include <stdio.h>
    int fflush(FILE *fp);    成功0 出错EOF
 
4、打开流
    #include <stdio.h>
    FILE *fopen(const char *restrict pathname,const char *restrict type);
    FILE *freopen(const char *restrict pathname,const char *restrict type,FILE *restrict fp);
    FILE *fdopen(int filedes,const char *type);
 
    type参数指定对该IO流的读、写方式
    r或rb                      为读而打开
    w或wb                   把文件截短至0长,或为写而创建
    a或ab                     添加    为在文件尾写而打开,或为写而创建
    r+或r+b或rb+        为读写而打开
    w+或w+b或wb+    把文件截短至0长,或为读和写而打开
    a+或a+b或ab+      为在文件尾读和写而打开或创建
    
    fclose关闭一个打开的流
 
5、读和写流
    a)一次读一个字符
    输入函数
 
    int getc(FILE *fp);
    int fgetc(FILE *fp);
    int getchar(void);
    三个函数的返回值,或成功则返回下一个字符,或已经到达文件结尾或出错则返回EOF
 
    函数getchar等价行getc(stdin),前二个函数的区别是getc可被实现为实现为宏
 
    输出函数
    #include <stdio.h>
    int putc(int c ,FILE *fp);
    int fputc(int c,FILE *fp);
    int putchar(int c);
    putchar(c)等效于putc(c,stdout)
 
    
    b)每次一行
    每次输入一行
    
    #include <stdio.h
    char *fgets(char *restrict buf,int n,FILE *restrict fp);
    char *gets(char *buf);
    不要使用gets
    
    每次输出一行
    int fputs(const char *restrict str,FILE *restrict fp);
    int puts(const char *str);
    二个函数返回值:或成功则返回非负值,或出错则返回EOF