LoadRunner文件操作函数详解
2015-09-10 11:34
295 查看
涉及的函数汇总:
文件的打开操作 fopen 打开一个文件
文件的关闭操作 fclose 关闭一个文件
文件的读写操作 fgetc 从文件中读取一个字符
fputc 写一个字符到文件中去
fgets 从文件中读取一个字符串
fputs 写一个字符串到文件中去
fprintf 往文件中写格式化数据
fscanf 格式化读取文件中数据
fread 以二进制形式读取文件中的数据
fwrite 以二进制形式写数据到文件中去
文件状态检查函数 feof 文件结束
ferror 文件读/写出错
#文件的打开
定义:按指定的方式打开文件
函数形式:long fopen( const char *filename, const char *access_mode );
功能说明:
按照access_mode指定的模式,打开由filename指定的文件,若找不到指定文件,则按以下方式之一处理:
若access_mode指定为按写方式打开文件,则就按filename指定的文件名创建新文件
若access_mode指定为按读方式打开文件,就会产生错误
打开文件的作用:
分配给打开文件一个long类型的文件变量,并将有关信息填入该变量
开辟一个缓冲区
调用操作系统提供的打开文件或建立新文件功能,打开或建立指定文件
返回值:
正常返回:指向打开文件的指针
异常返回:空指针NULL,表示打开文件操作失败
#文件的关闭
定义:关闭文件
函数形式:int fclose( FILE *file_pointer );
功能说明:关闭由file_pointer指向的文件,释放由file_pointer指定的文件类型指针
返回值:
正常返回:0
异常返回:EOF,表示文件在关闭时发生错误
#文件的读写操作
从文件中读取一个字符
函数形式:int fgetc( FILE *file_pointer );
功能说明:从指向文件的指针file_pointer中读取一个字符。
返回值:
正常返回:返回读取的字符代码。
异常返回:如果到达文件的末尾或者读取时发生错误,则返回EOF。
写一个字符到文件中去
函数形式:int fputc( int c, FILE *file_pointer );
功能说明:向指向文件的指针file_pointer中写入一个字符。
返回值:
正常返回:返回写入的字符代码。
异常返回:如果发生错误,则返回EOF。
从文件中读取一个字符串
函数形式:char *fgets( char *string, int maxchar, FILE *file_pointer );
功能说明:从指向文件的指针file_pointer中读入一个字符串。
返回值:
正常返回:返回读取的字符串。
异常返回:如果到达文件的末尾或者读取时发生错误,则返回空指针。
写入一个字符串到文件中去
函数形式:int *fputs( char *str, FILE *file_pointer );
功能说明:向指向文件的指针file_pointer中写入一个字符串。
返回值:
正常返回:返回写入的字符串。
异常返回:如果发生错误,则返回EOF。
向文件中写入格式化数据
函数形式:int fprintf( FILE *file_pointer, const char *format_string [, args ] );
功能说明:向指向文件的指针file_pointer中写入格式化数据。
返回值:
正常返回:返回写入的字符总数。
异常返回:如果发生错误,则返回负数。
写入数据如下图:
以二进制形式读取文件中的数据
函数形式:size_t fread( void *buffer, size_t size, size_t count, FILE *file_pointer );
功能说明:从指向文件的指针file_pointer中读取非格式化数据,保存至缓冲区buffer。
返回值:
正常返回:返回实际读取数据块的总数。
异常返回:如果读取的数据块个数与请求的数量不一致,则说明发生了错误,返回值0。此时可用feof()和ferror()来跟进出现了什么问题。
以二进制形式写数据到文件中去
函数形式:size_t fwrite( const void *buffer, size_t size, size_t count, FILE *file_pointer );
功能说明:从缓冲区中读取非格式化数据,保存至指向文件的指针file_pointer中。
返回值:
正常返回:返回实际写入数据块的总数。
异常返回:如果发生错误,返回值0。
写入数据如下图:
#文件状态检查
文件结束检查
函数形式:int feof( FILE *file_pointer );
功能说明: 检查文件是否已到结尾。
返回值:
0:假值,表示文件未结束。
1:真值,表示文件结束。
文件读\写出错检查
函数形式:int ferror( FILE *file_pointer );
功能说明: 检查由file_pointer 指定的文件在读写时是否出错。
返回值:
0:假值,表示无出错。
1:真值,表示有出错。
参考资料:C语言文件操作详解 /article/5018845.html
文件的打开操作 fopen 打开一个文件
文件的关闭操作 fclose 关闭一个文件
文件的读写操作 fgetc 从文件中读取一个字符
fputc 写一个字符到文件中去
fgets 从文件中读取一个字符串
fputs 写一个字符串到文件中去
fprintf 往文件中写格式化数据
fscanf 格式化读取文件中数据
fread 以二进制形式读取文件中的数据
fwrite 以二进制形式写数据到文件中去
文件状态检查函数 feof 文件结束
ferror 文件读/写出错
#文件的打开
定义:按指定的方式打开文件
函数形式:long fopen( const char *filename, const char *access_mode );
功能说明:
按照access_mode指定的模式,打开由filename指定的文件,若找不到指定文件,则按以下方式之一处理:
若access_mode指定为按写方式打开文件,则就按filename指定的文件名创建新文件
若access_mode指定为按读方式打开文件,就会产生错误
打开文件的作用:
分配给打开文件一个long类型的文件变量,并将有关信息填入该变量
开辟一个缓冲区
调用操作系统提供的打开文件或建立新文件功能,打开或建立指定文件
返回值:
正常返回:指向打开文件的指针
异常返回:空指针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; }
#文件的读写操作
从文件中读取一个字符
函数形式:int fgetc( FILE *file_pointer );
功能说明:从指向文件的指针file_pointer中读取一个字符。
返回值:
正常返回:返回读取的字符代码。
异常返回:如果到达文件的末尾或者读取时发生错误,则返回EOF。
示例: #define NUM_CHARS 3 Action() { 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.
写一个字符到文件中去
函数形式: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; }
从文件中读取一个字符串
函数形式: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.
写入一个字符串到文件中去
函数形式: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; }
向文件中写入格式化数据
函数形式: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; }
写入数据如下图:
以二进制形式读取文件中的数据
函数形式: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 = 44 Ending action Action.
以二进制形式写数据到文件中去
函数形式: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; }
写入数据如下图:
#文件状态检查
文件结束检查
函数形式:int feof( FILE *file_pointer );
功能说明: 检查文件是否已到结尾。
返回值:
0:假值,表示文件未结束。
1:真值,表示文件结束。
文件读\写出错检查
函数形式:int ferror( FILE *file_pointer );
功能说明: 检查由file_pointer 指定的文件在读写时是否出错。
返回值:
0:假值,表示无出错。
1:真值,表示有出错。
参考资料:C语言文件操作详解 /article/5018845.html
相关文章推荐
- Qt 任务调度器
- yum源配置与使用
- 核心动画简介
- Mysql binlog二进制日志
- 客户端ssh连接服务器后容易断开
- VNC 远程桌面
- exif_imagetype函数遇到Call to undefined function exif_imagetype问题
- build.sh之函数使用
- 多个activity共享相同的布局和控件
- 神文,apns推送后台注意事项,证书类型转换等
- JavaScript 点击事件小节
- thinkphp U方法添加变量
- Oracle BIEE (Business Intelligence) 11g 11.1.1.6.0 学习(2)RPD资料档案库创建
- C# Eval()和Bind()
- CAlayer(自定义layer)
- Spring 集成redis3.0.3集群管理
- php上传功能集后缀名判断和随机命名(强力推荐)
- Python面试题 之 Uniquify a list 不使用set去除一个列表中的重复项,并且保持原有的排列顺序
- [ZJOI2008]树的统计Count 树链剖分模板
- UVA - 11082(最大流思路题目)