码迷,mamicode.com
首页 > 其他好文 > 详细

第四天-----文件位置函数和缓冲区刷新函数

时间:2015-09-15 00:02:24      阅读:449      评论:0      收藏:0      [点我收藏+]

标签:

/*
功能:设置文件偏移位置
 参数1:FILE流
参数2:偏移量

参数3:偏移的位置:SEEK_SET, SEEK_CUR, SEEK_END
返回值:成功返回0,否则返回-1并设置errno
*/
int fseek(FILE *stream, long offset, int whence);
/*
功能:确定文件位置指针位置
参数1:FILE 流
返回值:文件位置指针的当前位置,否则返回-1,并设置errno*/
long ftell(FILE *stream); /*
功能:文件位置指针定义到文件开始位置
参数1:FILE流
返回值:无
*/
void rewind(FILE *stream);

用fseek函数以及ftell函数实现确定文件大小的程序:

#include <stdio.h>
#include <stdlib.h>

int main(int argc , char **argv)
{

    FILE *fp;

    if(argc < 2)
    {
        fprintf(stderr,"Usage....\n");
        exit(1);
    }
    fp = fopen(argv[1],"r");
    if(fp == NULL)
    {
        perror("fopen()");
        exit(1);
    }
    fseek(fp,0,SEEK_END);
    printf("%ld\n",ftell(fp));

    exit(0);
}

 

使用fseek函数产生一个空洞文件

/*
  功能:刷新一个流
参数1:FILE流,如果为NULL,刷新all流
返回值: 成功返回0,否则返回EOF,并设置errno */ int fflush(FILE *stream);

缓冲区作用:合并系统调用

行缓冲:换行时候刷新,满了时候刷,强制刷新(stdout)

全缓冲:满了时候刷,强制刷新(默认,除了stdout)

无缓冲:需要立即输出的内容(stderr)

设置缓冲模式:

int setvbuf(FILE *stream, char *buf, int mode, size_t size);

 

第四天-----文件位置函数和缓冲区刷新函数

标签:

原文地址:http://www.cnblogs.com/muzihuan/p/4808527.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!