C语言库函数--操作文件

//C库函数读取文件的代码

I/O缓冲机制 C语言库函数写文件都是写在内存中,然后一次写入磁盘。提高了效率。

读写文件,不对系统进行操作,一般采用C语言库函数。移植可以在任何可以对C支持的操作系统,而不用修改。

FILE *fopen(const char *path, const char *mode);

mode 参数:

r    Open text file for reading. The stream is positioned at the beginning of the file.

r+  Open for reading and writing. The stream is positioned at the beginning of the file.

w  Truncate file to zero length or create text file for writing. The stream is positioned at the beginning of the file.

w+ Open for reading and writing. The file is created if it does not exist, otherwiseit is truncated. The stream is positioned at the beginning of the file.

a Open for appending (writing at end of file). The file is created if it does notexist. The stream is positioned at the end of the file.

a+ Open for reading and appending (writing at end of file). The file is created if itdoes not exist. The initial file position for reading is at the beginning of the
     file, but output is always appended to the end of the file.

r  读的方法打开文件,文件的开始开始读

r+ 读和写,位置也是在文件的开始

w  截断文件(清空)并创建文件 写入,位置也是文件开始

w+ 读写文件,如果文件不存在就创建文件,存在就截断文件,位置也是文件开始。

a   追加写入的方式打开文件,如果文件不存在就创建文件,位置在文件尾部

a+ 打开追加文件读写。如果文件不存在,则创建文件。

int fclose(FILE *fp);

size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream);

size 表示读的大小,nmemb表示读记录次数。

如100个字符的buff 可以读size =100, nmemb =1

也可以size =1 ,nmemb =100

每次读满size的时候才有返回,否则为0

size_t fwrite(const void *ptr, size_t size, size_t nmemb,FILE *stream);

int main(int arg, char *args[])
{
  FILE *p = fopen(args[1], "r+");
  if (p == NULL)
  {
    printf("error is %s\n", strerror(errno));
  }

  else
  {
    printf("success\n");
    char buf[100];
    size_t rc = 0;

    while(1)
    {
      size_t tmp = fread(buf, 1, sizeof(buf), p);//原则是第二个参数乘以第三个参数的大小不能超过缓冲区
      rc += tmp;
      if (tmp == 0)
      break;

    }
    printf("rc = %d\n", rc);
    fclose(p);
  }
  return 0;
}

时间: 2024-10-14 10:28:40

C语言库函数--操作文件的相关文章

Unix/Linux环境C编程入门教程(41) C语言库函数的文件操作详解

?? 上一篇博客我们讲解了如何使用Linux提供的文件操作函数,本文主要讲解使用C语言提供的文件操作的库函数. 1.函数介绍 fopen(打开文件) 相关函数 open,fclose 表头文件 #include<stdio.h> 定义函数 FILE * fopen(const char * path,const char * mode); 函数说明 参数path字符串包含欲打开的文件路径及文件名,参数mode字符串则代表着流形态. mode有下列几种形态字符串: r 打开只读文件,该文件必须存

C零基础视频-47-C语言操作文件

目录 C语言文件操作函数 fopen:打开或创建文件 fopen中的mode参数 fclose:关闭文件 C语言文件操作函数 C标准库中提供了一系列的函数,来操作文件.因为C库函数做了这个中间层,屏蔽掉了操作系统上对于文件的不同处理. 关于文件的常见基本操作有: 打开文件:创建文件或打开文件载体(磁盘)中已有的文件 关闭文件:类似free,释放掉内存中与文件有关的动态资源 读取文件:数据由文件载体(磁盘)到内存 写入文件:数据由内存到文件载体(磁盘) fopen:打开或创建文件 fopen的原型

C语言样式的文件操作函数

使用C语言样式的文件操作函数,需要包含stdio.h头文件. 1.打开文件的函数: 1 //oflag的取值为“w”或“r”,分别表示以写或读的方式打开 2 FILE* fd = fopen(filename.c_str(), oflag); 2.写文件的函数原型: size_t fwrite(const void* buffer, size_t size, size_t count, FILE* stream ); 其中buffer是需要向文件中写入的内容在内存中的首地址指针,size是待写入

问题1:js这么语言的能力取决于什么?(运行平台)问题2:js是否能够操作文件(一般不能),ajax能否操作文件(一般不能)?

问题:js这么语言的能力取决于什么?(运行平台) 答:现在的js语言可以在浏览器运行(js如果是在浏览器端运行则不能操作磁盘文件),也可以在服务器端运行nodeJs(js在服务器端能够操作文件). 问题:js是否能够操作文件(一般不能),ajax能否操作文件(一般不能)? 答: a. js一般不能,但是分情况看,如果是在服务器端,则可以操作.如果是在浏览器端,则不能直接操作,但是可以操作cookie小文件. b. ajax一般不能操作文件:但是在最新的 ajax level2(formData对

go语言之行--文件操作、命令行参数、序列化与反序列化详解

一.简介 文件操作对于我们来说也是非常常用的,在python中使用open函数来对文件进行操作,而在go语言中我们使用os.File对文件进行操作. 二.终端读写 操作终端句柄常量 os.Stdin: 标准输入 os.Stdout: 标准输出 os.Stderr: 标准错误输出 读写示例: package main import ( "fmt" "os" ) var( username,password string ) func main() { fmt.Prin

go语言系统-从文件操作到单元测试

目录 文件操作 输入流和输出流 打开文件和关闭文件 使用的函数和方法 案例演示 读文件操作应用案例 写文件操作应用案例 判断文件是否存在 文件编程应用实例 拷贝文件 统计英文.数字.空格和其它字符数量 命令行参数 举例说明 flag包用来解析命令行参数 Json Json基本介绍 应用场景 Json数据格式说明 Jsnon数据在线解析 Json的序列化 应用案例 Json的反序列化 应用案例 单元测试 先看一个需求 传统的方法 传统方法的缺点分析 单元测试 基本介绍 快速入门 单元测试快速入门总

C语言中的文件操作---重定向操作文件

先说个题外话,文件操作以及字符串与字符深入处理(就是那些什么puts(), getchar()什么的)是本人深入认识C++最后的两座大山.而今天先把重定向文件操作解决掉. 输入输出重定向恐怕是文件I/O操作中最简单的方法了,具体用法是现在main函数的开头加入两条语句,例如: freopen("D:\\input.txt", "r", stdin); freopen("D:\\output.txt", "w", stdout)

转:C语言字符串操作函数 - strcpy、strcmp、strcat、反转、回文

转自:C语言字符串操作函数 - strcpy.strcmp.strcat.反转.回文 作者:jcsu C语言字符串操作函数 1. 字符串反转 - strRev2. 字符串复制 - strcpy3. 字符串转化为整数 - atoi4. 字符串求长 - strlen5. 字符串连接 - strcat6. 字符串比较 - strcmp7. 计算字符串中的元音字符个数8. 判断一个字符串是否是回文1. 写一个函数实现字符串反转 版本1 - while版 void strRev(char *s){    

C语言库函数大全及应用实例七

原文:C语言库函数大全及应用实例七 [编程资料]C语言库函数大全及应用实例七 函数名: getw 功 能: 从流中取一整数 用 法: int getw(FILE *strem); 程序例: #i nclude #i nclude #define FNAME "test.$$$" int main(void) { FILE *fp; int word; /* place the word in a file */ fp = fopen(FNAME, "wb"); if