man stdio

名称

        stdio - 标准输入/输出库函数

概要

        #include <stdio.h>

        

        FILE *stdin;

        FILE *stdout;

        FILE *stderr;

说明

        标准I/O库提供了一套简单和高效的带缓冲流的I/O接口。输入和输出被映射成逻

        辑数据流,隐藏了物理硬件的输入/输出功能。这些函数和宏在下面被列出,从它

        们各自的man页面中可以获取到更多的信息。

        在打开一个文件(也可以是一个物理设备)或者创建一个新文件的时候,一套缓冲

        流就会与之关联。创建一个已存在的文件会导致它已有的内容丢失。如果一个文件

        支持随机访问(比如硬盘里面的文件,而终端文件则不支持随机访问),那么除非

        该文件以追加模式打开,否则文件位置偏移指针就会指向文件起始位置(从0开始)。

        如果使用追加模式打开文件,那么文件位置偏移指针是指向文件起始位置还是文件

        末尾是不确定的。一系列的读、写、位置偏移操作都会改变文件位置偏移指针。所

        有的输入就跟连续调用fgetc函数读字符的效果一样,所有的输出就跟连续调用

        fputc函数写字符的效果一样。

        在关闭一个文件的时候,缓冲流跟文件的关联就会断开。在缓冲流跟文件断开关联

        之前,输出缓冲流被冲刷(任何未写的内容都要传到目的地)。在文件被关闭之后,

        指向文件对象的指针的值变得不确定(即这个指针变成了垃圾)。

        一个文件可以被相同或者不同的程序同时打开多次,并且它的内容能被读取和修改。

        如果main函数返回到它的上一级函数或者exit函数被调用,那么在程序退出之前,

        所有打开的文件都会被关闭(所有的输出缓冲流被冲刷)。如果程序以其他方式退

        出(比如abort),那么文件并不会被适当地关闭。

        在一个程序启动的时候,有三个流是预定义的并且不需要显式地打开:标准输入(完

        成常规的读),标准输出(完成常规的写),标准错误(完成错误输出)。这几个流

        缩写为stdin,stdout,stderr。在打开的时候,stderr并不是全缓冲的,当且仅当

        stdin和stdout不是指向一个交互式设备的时候才是全缓冲的。

      

        默认情况下,指向终端设备的输出流总是行缓冲的。当读取终端设备的输入流时,

        未完成的输出流总是被自动处理(冲刷)。当打印行缓冲的部分内容并做大量的数

        据计算的时候,如果想在计算完成之前看到剩余内容的输出,则要在计算之前调用

        fflush。

        标准I/O库是libc库的一部分,并且在需要的时候cc编译器和pc编译器会自动

        加载它们。概要指出了需要的头文件和变量。

        下面是一些宏定义,如果要重新定义这些宏,则必须通过#undef取消它们当前的

 定义:BUFSIZ,EOF,FILENAME_MAX,FOPEN_MAX,L_cuserid,L_ctermid,L_tmpnam,

        NULL,SEEK_END,SEEK_SET,SEEK_CUR,TMP_MAX,clearerr,feof,ferror,fileno, getc,getchar,putc,putchar,stderr,stdin,stdout。

    

 函数列表

        函数 说明

        -----------------------------------------------------------------

        clearerr 检查和复位流的状态

        fclose 关闭流

        fdopen 打开流

        feof 检查并复位流的状态

        ferror 检查并复位流的状态

        fflush 冲刷流

        fgetc 从输入流获取下一个字符或字

        fgetpos 定位流

        fgets 从流获取一行

        fileno 返回流的整形描述符

        fopen 打开流

        fprintf 输出格式化转换

        fpurge 冲刷流

        fputc 输出一个字符或字到流

        fputs 输出一行到流

        fread 二进制流输入/输出

        freopen 打开流

        fscanf 输入格式化转换

        fseek 定位流

        fsetpos 定位流

        ftell 定位流

        fwrite 二进制流输入/输出

        getc 从输入流获取下一个字符或字

        getchar 从输入流获取下一个字符或字

        gets 从流获取一行

        getw 从输入流获取下一个字符或字

        mktemp 创建临时的文件名(唯一的)

        perror 系统错误消息

        printf 输出格式化转换

        putc 输出一个字符或字到流

        putchar 输出一个字符或字到流

        puts 输出一行到流

        putw 输出一个字符或字到流

        remove 移除目录节点

        rewind 定位流

        scanf 输入格式化转换

        setbuf 流的缓冲操作

        setbuffer 流的缓冲操作

        setlinebuf 流的缓冲操作

        setvbuf 流的缓冲操作

        sprintf 输出格式化转换

        sscanf 输入格式化转换

        strerror 系统错误消息

        sys_errlist 系统错误消息

        sys_nerr 系统错误消息

        tempnam 临时文件函数

        tmpfile 临时文件函数

        tmpnam 临时文件函数

        ungetc 回退字符

        vfprintf 输出格式化转换

        vfscanf 输入格式化转换

        vprintf 输出格式化转换

        vsscanf 输入格式化转换

标准

        标准I/O库遵循C89标准

推荐阅读

        close,open,read,write,stdout,unlocked_stdio

版本记录

        这个页面是Linux man-pages项目3.54版本的一部分。关于该项目的信息和bug报道可以在该网站找到:http://www.kernel.org/doc/man-pages/。

2001-12-26

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ta是一个搬运工

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值