1. 程式人生 > >LoadRunner檔案操作函式詳解

LoadRunner檔案操作函式詳解

涉及的函式彙總:

檔案的開啟操作 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; }

#檔案的讀寫操作

從檔案中讀取一個字元

函式形式: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:真值,表示有出錯。

相關推薦

LoadRunner檔案操作函式

涉及的函式彙總: 檔案的開啟操作 fopen 開啟一個檔案 檔案的關閉操作 fclose 關閉一個檔案 檔案的讀寫操作 fgetc 從檔案中讀取一個字元          fputc 寫一個字元到檔案中去      

C++檔案操作函式

轉載:http://blog.csdn.net/mafuli007/article/details/7271975 C++通過以下幾個類支援檔案的輸入輸出 (1)      ofstream:寫操作,輸出檔案類; (2)      ifstream:讀操作,輸入檔案

c語言檔案操作函式

C語言中沒有輸入輸出語句,所有的輸入輸出功能都用 ANSI C提供的一組標準庫函式來實現。檔案操作標準庫函式有:       檔案的開啟操作 fopen 開啟一個檔案       檔案的關閉操作 fclose 關閉一個檔案       檔案的讀寫操作 fgetc 從檔案中讀取一個字元            

Android NDK——必知必會之JNI的C++操作函式和小結(三)

引言 上一篇講解了一些關於JNI和NDK的必知必會的理論知識和機制,由於篇幅問題把關於JNI的重要的函式放到這篇,具體使用留到下一篇,此係列文章基連結: 一、JNI中的函式概述 在JNI層我們基本上都是通過env指標來呼叫jni.h標頭檔案裡定義的函式,JNI

unity 在移動平臺中,檔案操作路徑

相信大家在開發過程中,難免會儲存一些檔案在客戶端進行本地化操作。 如:配置檔案,狀態檔案,Assetbundle檔案等等... 最近總有人問我: 1.儲存了一個xml在客戶端,能讀取裡面的資料,可是不能修改,甚至一修改就報錯... 2.我在電腦上操作檔案(xm

C語言 把字串寫入檔案 fprintf函式

把把字串寫入檔案,基本示例如下: FILE *fp; char s[]= "hello world!"; char c = '\n'; fp = fopen("file.txt","a");

android檔案操作路徑

1:內部儲存     data資料夾就是我們常說的內部儲存,當我們開啟data資料夾之後(沒有root的手機不能開啟該資料夾)         data下還有許多資料夾             一個資料夾是app資料夾,app資料夾裡存放著我們所有安裝的app     的ap

檔案操作中的lseek函式

    所有開啟的檔案都有一個當前檔案偏移量(current file offset),以下簡稱為 cfo。cfo 通常是一個非負整數,用於表明檔案開始處到檔案當前位置的位元組數。讀寫操作通常開始於 cfo,並且使 cfo 增大,增量為讀寫的位元組數。檔案被開啟時,cfo

ioctl、檔案操作介面函式以及nand的升級模式的操作過程

概述 核心中驅動檔案的操作通常是通過write和read函式進行的,但是很多時候再使用者空間進行的操作或許不是核心中公共程式碼部分提供的功能,此時就需要使用一種個性化的方法進行操作--ioctl系統呼叫。 ioctl系統呼叫是一種用於裝置控制的公共介面,主要分為兩種,一種是

[Xcode10 實際操作]一、博主領進門-(8)應用代理檔案(AppDelegate.swift)

本文將演示使用iOS模擬器,演示程式的生命週期。 在專案導航區,開啟應用代理檔案【AppDelegate.swift】 應用代理檔案時系統執行本應用的委託,裡面定義瞭如程式的進入與退出、裝置方向旋轉等眾多全域性方法。 1 import UIKit 2 3 @UIApplicationM

PHP檔案上傳操作例項(包含上傳檔案型別MIME驗證)

本文例項分析了PHP檔案上傳操作。分享給大家供大家參考,具體如下: 檔案上傳 發生在瀏覽器向伺服器發出的請求中。 檔案,對於瀏覽器來講,就是表單中的一個特殊型別的資料而已。 瀏覽器表單中的資料,兩種型別: 字串型別(位元組流編碼) 檔案型別(二進位制編碼),檔案是表單資料中

Loadrunner關於頁面檢查的幾個函式

環境:51Testing軟體測試網]~d$s7C_Loadrunner版本:8.0h3o B4xH.^'| V7QV247706自建一個test.html檔案:51Testing軟體測試網L+/,@+|(TX7p<html>51Testing軟體測試網$l]7QF

loadrunner關聯函式

1.什麼值需要關聯?客戶端的某個請求是隨著伺服器端的相應而動態變化的值,則需要關聯。2.web_reg_sava_param舉例:web_reg_save_param("jws_session","LB=JWS_SESSION=\"","RB=\"",LAST);解釋:jws

Spark RDD操作:combineByKey函式

當資料集一鍵值對形式組織的時候,聚合具有相同鍵的元素進行一些統計是很常見的操作。對於Pair RDD常見的聚合操作如:reduceByKey,foldByKey,groupByKey,combineByKey。這裡重點要說的是combineByKey。因為combineBy

Loadrunner常用函式(一)

web_url 語法: Int Web_url(const char *name, const char * url, , [EXTRARES,,LAST) 返回值 成功時返回LR_PASS (0),失敗時返回 LR_FAIL (1)。 引數: Name:VuGen中

C語言檔案讀寫函式

1.    首先要理解幾個概念:  檔案: 按一定規則儲存在磁碟上的資料集合。  檔名: 能唯一標識某個磁碟檔案的字串。形式: 碟符:/ 路徑 / 檔名.副檔名  文字檔案:: 資料以其數字字元的ASCII碼形式、一個位元組一個位元組地儲存在磁碟上。  二進位制檔案:資料以二進位制形式在儲存在磁碟上。  裝置

呼叫JAVA API對HDFS檔案進行檔案的讀寫、上傳下載、刪除等操作程式碼

Hadoop檔案系統  基本的檔案系統命令操作, 通過hadoop fs -help可以獲取所有的命令的詳細幫助檔案。 Java抽象類org.apache.hadoop.fs.FileSystem定義了hadoop的一個檔案系統介面。該類是一個抽象類,通過以下兩種靜態工廠方

VB Open 函式 開啟、關閉、讀、寫檔案

(一)開啟和關閉檔案      1、順序檔案      開啟順序檔案,我們可以使用Open語句。它的格式如下: Open pathname For [Input |Output |Append] As [#]filenumber [Len = buffersize]   

LoadRunner函式之web_submit_data

定義:處理無狀態或者上下文無關的表單提交。它用來生成表單的GET或POST請求,這些請求與Form自動生成的請求是一樣的,傳送這些請求時不需要表單上下文。 函式形式:web_submit_data(

Python內建函式open()&檔案屬性方法

Python檔案物件開啟模式及其屬性方法詳解1、檔案系統和檔案檔案系統:檔案系統是OS用於明確磁碟或分割槽上的檔案的方法和資料結構,即在磁碟上組織檔案的方法檔案:儲存在某種長期儲存裝置或臨時儲存裝置中的一段資料流,並且受計算機檔案系統管理。概括來講,檔案是計算機中有OS管理的