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

/*  功能:设置文件偏移位置 参数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);
时间: 2024-12-22 04:22:04

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

多线程---有四个线程1、2、3、4。线程1的功能就是输出1,线程2的功能就是输出2,以此类推.........现在有四个文件ABCD

有四个线程1.2.3.4. 线程1的功能就是输出1, 线程2的功能就是输出2,以此类推---现在有四个文件ABCD. 初始都为空. 现要让四个文件呈如下格式: A:1 2 3 4 1 2-. B:2 3 4 1 2 3-. C:3 4 1 2 3 4-. D:4 1 2 3 4 1-. 请设计程序. 先试着写出四个线程交替写入A文件 public class FourThreadOneFile { public static FILE file = new FILE(); public stat

Linux环境编程之文件I/O(四):文件I/O的数据结构

(一) Linux系统支持不同进程间共享打开的文件.内核使用三种数据结构表示打开的文件:进程表项.文件表项.v节点表. 1.进程表项:每个进程在进程表中都有一个记录项,记录项中年包含有一张打开文件描述符表,可将其视为一个矢量,每个描述符占用一项.与每个文件描述符相关联的是: a.文件描述符标志 b.指向一个文件表项的指针 2.内核为所有打开文件维持一张文件表.每个文件表项包含: a.文件状态标志,如读写.添加.同步和非阻塞等. b.当前文件偏移量 c.指向该文件v节点表项的指针 3.每个打开的文

第四章 文件的基本管理和XFS文件系统备份恢复

第四章 文件的基本管理和XFS文件系统备份恢复 本节所讲内容: 4.1 Linux系统目录结构和相对/绝对路径. 4.2 创建/复制/删除文件,rm -rf / 意外事故 4.3 查看文件内容的命令 4.4 实战:xfs文件系统的备份和恢复   4.1 Linux系统目录结构和相对/绝对路径 4.1.1系统目录结构 在WIN系统中,查看文件先进入相应的盘符,然后进入文件目录 ?? 在WIN中,它是多根 c:\ d:\ e:\ Linux只有一个根目录   ?? 使用tree命令查看linux目录

后台修改js或者css文件之后,客户端刷新但是无效的问题

前端开发会遇到一个问题:修改测试前端代码的时候,有时候修改了css或者js文件,但是前端刷新的时候却没有反应,不免让人感觉是不是修改错误,其实这有可能是客户端缓存问题.解决方法: 1)Ctrl+F5,清除浏览器缓存(等同于浏览器-->历史数据-->删除cookies) 2)在js或css后加版本号,这时候浏览器客户端会认为这是不同版本的js或者css文件,会自动重新刷新下载(浏览器会缓存下载页面js和css文件) 2.1)形如:.css?v=x  或者 css?version=x     &l

Google面试题—有四个线程1、2、3、4。线程1的功能就是输出1,线程2的功能就是输出2,以此类推.........现在有四个文件ABCD

分类: windows编程 C++ 2012-10-27 19:56 3410人阅读 评论(1) 收藏 举报 有四个线程1.2.3.4.线程1的功能就是输出1,线程2的功能就是输出2,以此类推.........现在有四个文件ABCD.初始都为空.现要让四 个文件呈如下格式:A:1 2 3 4 1 2....B:2 3 4 1 2 3....C:3 4 1 2 3 4....D:4 1 2 3 4 1....请设计程序. [cpp] view plaincopy #include <stdio.h

C#四种文件流的区别

1.FileStream类的读写操作 FileStream类可以对任意类型的文件进行读取操作,而且我们也可以按照需要指定每一次读取字节长度,以此减少内存的消耗,提高读取效率. 代码实例: //创建文件读取对象 using(FileStream fileReader=new FileStream (文件的物理路径,FileMode.Open)) { //创建文件写入对象 using(FileStream fileWrite=new FileStream (需要保存的文件物理路径+文件后缀名,Fil

ajaxfileupload.js插件结合一般处理文件实现Ajax无刷新上传

先上几张图更直观展示一下要实现的功能.本功能主要通过Jquery ajaxfileupload.js插件结合ajaxUpFile.ashx一般应用程序处理文件实现Ajax无刷新上传功能,结合NPOI2.0实现数据读取.这个功能在实际工作种经经常使用到,希望能给须要做这方面的人有些帮助. 一.功能页面布局及介绍 1.上传页面布局及input file上传功能 2.上传页面文件正在上传效果 3.上传完毕效果,多文件展示区 二.功能代码实现及资源引用 1.js资源文件引用 html页面js引用.须要引

APUE学习笔记:第四章 文件和目录

4.1 引言 本章将描述文件的特征和文件的性质 4.2 stat.fstat和lstat函数 #include<sys/stat.h> int stat(const char *restrict pathname,struct stat *restrict buf); int fstat(int filedes,struct stat *buf) int lstat(const char *restrict pathname,struct stat *restrict buf); 三个函数的返

【JSP】文件上传局部刷新

看到局部刷新,大家联想到的肯定是Ajax,但实际上,Ajax是没有办法实现文件上传的局部刷新的.由于安全性的需要,JavaScript代码是不能访问客户端文件系统,所以通过XMLHttpRequest的请求参数是无法得到上传文件的内容的,只能得到文件名. 那么我们又是怎样实现文件上传局部刷新的呢?其实我们再上传文件的时候采用的还是同步方式,为了不刷新整个页面,我们需要用到隐藏的iframe,我们在页面上增加一个隐藏的<iframe>元素,该元素将会作为提交表单的target. 文件上传要求表单