涉及的函数汇总:

文件的打开操作 fopen 打开一个文件 
文件的关闭操作 fclose 关闭一个文件 
文件的读写操作 fgetc 从文件中读取一个字符 
         fputc 写一个字符到文件中去 
         fgets 从文件中读取一个字符串 
         fputs 写一个字符串到文件中去 
         fprintf 往文件中写格式化数据 
         fscanf 格式化读取文件中数据 
         fread 以二进制形式读取文件中的数据 
         fwrite 以二进制形式写数据到文件中去 
文件状态检查函数 feof 文件结束 
         ferror 文件读/写出错

#文件的打开 
定义:按指定的方式打开文件 
函数形式:long fopen( const char *filename, const char *access_mode ); 

功能说明: 
按照access_mode指定的模式,打开由filename指定的文件,若找不到指定文件,则按以下方式之一处理:

  1. 若access_mode指定为按写方式打开文件,则就按filename指定的文件名创建新文件

  2. 若access_mode指定为按读方式打开文件,就会产生错误

打开文件的作用:

  1. 分配给打开文件一个long类型的文件变量,并将有关信息填入该变量

  2. 开辟一个缓冲区

  3. 调用操作系统提供的打开文件或建立新文件功能,打开或建立指定文件

返回值: 
正常返回:指向打开文件的指针 
异常返回:空指针NULL,表示打开文件操作失败

#文件的关闭 
定义:关闭文件 
函数形式:int fclose( FILE *file_pointer ); 
功能说明:关闭由file_pointer指向的文件,释放由file_pointer指定的文件类型指针 
返回值: 
正常返回:0 
异常返回:EOF,表示文件在关闭时发生错误

示例:
Action()
{long file_stream; char *filename = "f:\\readme.txt"; // Open the file with read access if ((file_stream = fopen(filename, "r")) == NULL) { lr_error_message ("打开 %s 文件时失败", filename); return -1; }    if (fclose(file_stream)) lr_error_message ("文件 %s 关闭时出错", filename); return 0;
}1234567891011121314

#文件的读写操作

从文件中读取一个字符

函数形式:int fgetc( FILE *file_pointer ); 
功能说明:从指向文件的指针file_pointer中读取一个字符。 
返回值: 
正常返回:返回读取的字符代码。 
异常返回:如果到达文件的末尾或者读取时发生错误,则返回EOF。

示例:#define NUM_CHARS 3Action()
{long file_stream; char buffer[100],ch;    int i,total=0;char *filename = "f:\\readme.txt"; // Open the file with read access if ((file_stream = fopen(filename, "r")) == NULL) { lr_error_message ("打开 %s 文件失败", filename); return -1; }    for (i=0;(i<NUM_CHARS)&&(feof(file_stream)==0);i++) {ch=fgetc(file_stream);buffer[i]=ch;}buffer[i]=NULL;lr_error_message("First %d characters of file %s are \"%s\"",NUM_CHARS,filename,buffer);    if (fclose(file_stream)) lr_error_message ("文件 %s 关闭时出错", filename); return 0;
}output:
Starting action Action.
Action.c(27): Error: First 3 characters of file f:\readme.txt are "loa"Ending action Action.12345678910111213141516171819202122232425262728

写一个字符到文件中去

函数形式:int fputc( int c, FILE *file_pointer ); 
功能说明:向指向文件的指针file_pointer中写入一个字符。 
返回值: 
正常返回:返回写入的字符代码。 
异常返回:如果发生错误,则返回EOF。

示例
Action()
{    long file_stream; char *p,str[]="this is the first line of the log file";    int c;    char *filename = "f:\\logfile.txt"; // Create a new file  if ((file_stream = fopen(filename, "w+")) == NULL) { lr_error_message ("创建 %s 文件失败", filename); return -1; }    //p指向字符数组str的第一个字符p=str;    while ((*p!=NULL)&&fputc(*(p++),file_stream)!=-1);    if (fclose(file_stream)) lr_error_message ("文件 %s 关闭时出错", filename); return 0;
}12345678910111213141516171819

从文件中读取一个字符串

函数形式:char *fgets( char *string, int maxchar, FILE *file_pointer ); 
功能说明:从指向文件的指针file_pointer中读入一个字符串。 
返回值: 
正常返回:返回读取的字符串。 
异常返回:如果到达文件的末尾或者读取时发生错误,则返回空指针。

示例:
Action()
{    int i, total = 0; char line[22],ch;    long file_stream; char *filename = "f:\\readme.txt"; // Open the file with read access if ((file_stream = fopen(filename, "r")) == NULL) { lr_error_message ("打开 %s 文件失败", filename); return -1; } // Get the first line from the file if (fgets(line, 22, file_stream) == NULL) lr_output_message("fgets error"); else lr_output_message( "The first line is \"%s\"", line); if (fclose(file_stream)) lr_error_message("Error closing file %s", filename); return 0;
}output:
Starting action Action.
Action.c(31): The first line is "loadrunner9.5破解方法"Ending action Action.1234567891011121314151617181920212223242526

写入一个字符串到文件中去

函数形式:int *fputs( char *str, FILE *file_pointer ); 
功能说明:向指向文件的指针file_pointer中写入一个字符串。 
返回值: 
正常返回:返回写入的字符串。 
异常返回:如果发生错误,则返回EOF。

示例:
Action()
{    long file_stream; char str[]="this is the first line of the log file";    char *filename = "f:\\logfile.txt"; // Create a new file  if ((file_stream = fopen(filename, "w+")) == NULL) { lr_error_message ("创建 %s 文件失败", filename); return -1; }fputs(str,file_stream);    if (fclose(file_stream)) lr_error_message ("文件 %s 关闭时出错", filename); return 0;
}12345678910111213141516

向文件中写入格式化数据

函数形式:int fprintf( FILE *file_pointer, const char *format_string [, args ] ); 
功能说明:向指向文件的指针file_pointer中写入格式化数据。 
返回值: 
正常返回:返回写入的字符总数。 
异常返回:如果发生错误,则返回负数。

示例:
Action()
{    long file_stream; int id;    char *groupname;    char *filename = "f:\\logfile.txt"; // Create a new file  if ((file_stream = fopen(filename, "w+")) == NULL) { lr_error_message ("创建 %s 文件失败", filename); return -1; }    //返回虚拟用户的信息lr_whoami(&id,&groupname,NULL);fprintf(file_stream,"log file of virtual user ID: %d group: %s\n",id, groupname);    if (fclose(file_stream)) lr_error_message ("文件 %s 关闭时出错", filename); return 0;
}12345678910111213141516171819

写入数据如下图: 

以二进制形式读取文件中的数据 
函数形式:size_t fread( void *buffer, size_t size, size_t count, FILE *file_pointer ); 
功能说明:从指向文件的指针file_pointer中读取非格式化数据,保存至缓冲区buffer。 
返回值: 
正常返回:返回实际读取数据块的总数。 
异常返回:如果读取的数据块个数与请求的数量不一致,则说明发生了错误,返回值0。此时可用feof()和ferror()来跟进出现了什么问题。 

Action()
{    long file_stream; int count, total = 0; char buffer[1000]; char *filename = "f:\\logfile.txt"; // Create a new file  if ((file_stream = fopen(filename, "r")) == NULL) { lr_error_message ("打开 %s 文件失败", filename); return -1; }    // Read until end of file while (!feof(file_stream)) { // Read 1000 bytes while maintaining a running count count = fread(buffer, sizeof(char), 1000, file_stream); lr_output_message ("%3d bytes read", count); if (ferror(file_stream)) { /* Check for file I/O errors */ lr_output_message ("Error reading file %s", filename); break; } total += count; // Add up actual bytes read }    // Display final total lr_output_message ("Total number of bytes read = %d", total ); if (fclose(file_stream)) lr_error_message ("文件 %s 关闭时出错", filename); return 0;
}output:
Starting action Action.
Action.c(28):  44 bytes read
Action.c(44): Total number of bytes read = 44Ending action Action.12345678910111213141516171819202122232425262728293031323334

以二进制形式写数据到文件中去

函数形式:size_t fwrite( const void *buffer, size_t size, size_t count, FILE *file_pointer ); 
功能说明:从缓冲区中读取非格式化数据,保存至指向文件的指针file_pointer中。 
返回值: 
正常返回:返回实际写入数据块的总数。 
异常返回:如果发生错误,返回值0。 

struct student_data { int student_id; unsigned char marks[10]; };
Action()
{    long file_stream; int i;    struct student_data sd;    char *filename = "f:\\logfile.txt"; // Create a new file  if ((file_stream = fopen(filename, "w+")) == NULL) { lr_error_message ("创建 %s 文件失败", filename); return -1; }sd.student_id = 1001; // Set the marks of student 1001 for (i = 0; i < 10; i++) sd.marks[i] = (unsigned char)(85 + i); // Write student record to the file i = fwrite(&sd, sizeof(struct student_data), 1, file_stream); if (i > 0) lr_output_message ("Successfully wrote %d record", i);  if (fclose(file_stream)) lr_error_message ("文件 %s 关闭时出错", filename); return 0;
}123456789101112131415161718192021222324252627

写入数据如下图: 

#文件状态检查

文件结束检查

函数形式:int feof( FILE *file_pointer ); 
功能说明: 检查文件是否已到结尾。 
返回值: 
0:假值,表示文件未结束。 
1:真值,表示文件结束。

文件读\写出错检查

函数形式:int ferror( FILE *file_pointer ); 
功能说明: 检查由file_pointer 指定的文件在读写时是否出错。 
返回值: 
0:假值,表示无出错。 
1:真值,表示有出错。

转载于:https://blog.51cto.com/13693838/2096407

脚本——LoadRunner文件操作函数详解相关推荐

  1. 一次性就能学会的文件操作!(文件操作函数详解)

    前言:在上一篇博客关于文件的基础知识中我们对文件有了一定的了解,本篇博客将会详细讲解操作文件的函数. 文章目录 文件的顺序读写 字符输入输出函数 -- fgetc 与 fputc fputc函数 fg ...

  2. C语言文件操作函数详解

    转载自https://www.cnblogs.com/saolv/p/7793379.html C语言中没有输入输出语句,所有的输入输出功能都用 ANSI C提供的一组标准库函数来实现.文件操作标准库 ...

  3. C语言---文件操作及文件操作函数详解

    文章目录

  4. 简述python文件操作_Python 文件操作的详解及实例

    Python 文件操作的详解及实例 一.文件操作 1.对文件操作流程 打开文件,得到文件句柄并赋值给一个变量 通过句柄对文件进行操作 关闭文件 现有文件如下: 昨夜寒蛩不住鸣. 惊回千里梦,已三更. ...

  5. C语言文件操作超详解(万字解读,细致入微)

    目录 一.什么是文件 1.程序文件 2.数据文件 二.文件名 三.文件的打开和关闭 1.文件指针 2.文件操作--打开和关闭 fopen函数(包含在头文件stdio.h中)的解析: fclose函数( ...

  6. mysql日期时间操作函数详解

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. win7可以设定每周从哪一天开始,win2003等不能方便的修改.有的是周日开始,有的是周一开始.而 ...

  7. python文件操作模式是什么,python --文件操作模式详解

    #f= open(r"aaa/a.txt",mode='rt') # f的值是一种变量,占用的是应用程序的内存空间,此时牵扯的是两个方面的资源 #print(f) ##2.操作文件 ...

  8. 常见的字符串操作函数详解

    文章目录 字符串操作函数实现详解 一.模拟实现strlen函数 1.strlen原型 2.strlen功能 3.strlen 实现的方法和思路 A.暴力求解 B.递归方法 C.指针-指针 二.模拟实现 ...

  9. C语言进阶-文件操作超详解

    目录 为什么使用文件 什么是文件 分类(从文件功能的角度) 文件名 文件的打开和关闭 文件指针 fopen和fclose函数 打开方式表 文件的顺序读写 顺序读写函数表 什么是输入输出流 fgetc/ ...

  10. pythoncopy函数_Python的shutil模块中文件的复制操作函数详解

    copy()chutil.copy(source, destination) shutil.copy() 函数实现文件复制功能,将 source 文件复制到 destination 文件夹中,两个参数 ...

最新文章

  1. python中calendar怎么用_Python时间模块datetime、time、calendar的使用方法
  2. 如何高效的学习TensorFlow代码?
  3. JavaScript判断变量数据类型
  4. Linq入门博客系列地址http://www.cnblogs.com/lifepoem/category/330218.html
  5. 使用rman本机复制新数据库
  6. matlab vision工具箱使用手册,matlab-Computer Vision System ToolBox的系统对象使用
  7. vue-cli项目模板的一些思考
  8. 使用ASP.NET Core 3.x 构建 RESTful API - 3.2 路由
  9. SSM+solr 通过商品搜索学习solr的简单使用
  10. LeetCode 1486. 数组异或操作
  11. MPLS ×××配置
  12. 博客真的停止维护了,找我请@我。
  13. pycharm + python36 + opencv + opencv_contrib库的安装
  14. 2008年下半年软件水平考试之程序员试题分析
  15. 单文档切换OpenGL视图
  16. HyperLedger Composer 如何安装、小白入门教程
  17. 80 多个免费编程字体,你喜欢哪种?
  18. 基于JAVA+SpringBoot+Mybatis+MYSQL的应急值班值守管理系统
  19. 揭秘IBM架构设计方法论 —— Solution Design II
  20. 腾讯撕开中国NFT的“遮羞布”

热门文章

  1. diff与patch操作
  2. 430.扁平化多级双向链表
  3. 等概率随机产生0和1
  4. 函数重载与函数覆盖的区别(C++)
  5. 矩阵论作业4,5,6讲
  6. 通信系统设计中的凸优化问题
  7. 网络拓扑图自动生成_SAP ABAP关键字语法图和ABAP代码自动生成工具Code Composer
  8. 操作系统课设 Nachos 实验一:Nachos 系统的安装与调试
  9. 【16年浙江省赛 B ZOJ 3937】More Health Points【树上dfs、斜率优化dp、动态维护下凸壳】
  10. Softmax Function