首页 > 其他 > 详细

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

时间:2015-09-14 23:59:32      阅读:480      评论: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
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!