Linux输入输出与文件

发表于:2015-4-14 09:34

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:我叫周某某    来源:51Testing软件测试网采编

  1. 基于文件指针的文件操作(缓冲)
  linux中对目录和设备的操作都是文件操作,文件分为普通文件,目录文件,链接文件和设备文件。
  1.1. 文件的创建,打开与关闭
  原型为:
  #include <stdio.h> //头文件包含
  FILE *fopen(const char *pach,const char *mode); //文件名 模式
  int fclose(FILE *stream);
  fopen以mode的方式打开或创建文件,如果成功,将返回一个文件指针,失败则返回NULL.
  fopen创建的文件的访问权限将以0666与当前的umask结合来确定。
  1.2. 读写文件
  基于文件指针的数据读写函数较多,可分为如下几组:
  数据块读写:
  #include <stdio.h>
  size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream);
  size_t fwrite(void *ptr, size_t size, size_t nmemb, FILE *stream);
  fread从文件流stream 中读取nmemb个元素,写到ptr指向的内存中,每个元素的大小为size个字节。
  fwrite从ptr指向的内存中读取nmemb个元素,写到文件流stream中,每个元素size个字节。
  所有的文件读写函数都从文件的当前读写点开始读写,读写完以后,当前读写点自动往后移动size*nmemb个字节。
  1.3.文件定位:
  文件定位指读取或设置文件当前读写点,所有的通过文件指针读写数据的函数,都是从文件的当前读写点读写数据的。
  常用的函数有:
  #include <stdio.h>
  int feof(FILE * stream); //通常的用法为while(!feof(fp))
  int fseek(FILE *stream, long offset, int whence);//设置当前读写点到偏移whence 长度为offset处
  long ftell(FILE *stream); //用来获得文件流当前的读写位置
  void rewind(FILE *stream); //把文件流的读写位置移至文件开头 èfseek(fp, 0, SEEK_SET);
  feof判断是否到达文件末尾的下一个(注意到达文件末尾之后还会做一次)
  fseek设置当前读写点到偏移whence 长度为offset处,whence可以是:
  SEEK_SET (文件开头 –>0)
  SEEK_CUR (文件当前位置 –>1)
  SEEK_END (文件末尾 –>2)
  ftell获取当前的读写点
  rewind将文件当前读写点移动到文件头
  1.4.格式化读写:
  #include <stdio.h>
  int printf(const char *format, ...); //相当于fprintf(stdout,format,…);
  int scanf(const char *format, …);
  int fprintf(FILE *stream, const char *format, ...);
  int fscanf(FILE *stream, const char *format, …);
  int sprintf(char *str, const char *format, ...); // eg: sprintf(buf,”the string is;%s”,str);
  int sscanf(char *str, const char *format, …);
  以f开头的将格式化后的字符串写入到文件流stream中
  以s开头的将格式化后的字符串写入到字符串str中
21/212>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号