vsnprintf列印可變引數的log

2021-06-23 09:18:01 字數 941 閱讀 9331

vsnprintf,c語言庫函式之一,屬於可變引數。用於向字串中列印資料、資料格式使用者自定義。

標頭檔案:

#include

函式宣告:

int_vsnprintf(char*str,size_tsize,constchar*format,va_listap);

引數說明:

char *str [out],把生成的格式化的字串存放在這裡.

size_t size [in], str可接受的最大位元組數,防止產生陣列越界.

const char *format [in], 指定輸出格式的字串,它決定了你需要提供的可變引數的型別、個數和順序。

va_list ap [in], va_list變數. va:variable-argument:可變引數

函式功能:將可變引數格式化輸出到乙個字元陣列。

用法類似於vsprintf,不過加了size的限制,防止了記憶體溢位(size為str所指的儲存空間的大小)。

返回值:執行成功,返回寫入到字元陣列str中的字元個數(不包含終止符),最大不超過size;執行失敗,返回負值,並置errno.[1] 

備註:

linux環境下是:vsnprintf

vc6環境下是:_vsnprintf

#include #include #include #include static const int max_log_length = 4*1024;

static void print_log(const char * format, ...)

int main()

-------

參考:

vsnprintf在可變引數列印中的用法

vsnprintf,c語言庫函式之一,屬於可變引數。用於向字串中列印資料 資料格式使用者自定義。編輯標頭檔案 include 函式宣告 int vsnprintf char str,size t size,const char format,va list ap 引數說明 char str out ...

可變引數列印 解析可變引數

1.的一般用法 define str s s define cons a,b int a e b int main 2.接受,列印可變引數 參考 glibc庫的bebug函式 define printf fmt,args.printf fmt,args 使用方法 define pr debug fm...

可變引數實現log列印

實現步驟如下 函式原型中使用省略號 函式定義中建立乙個va list變數 3.初始化va list變數 4.訪問引數列表 5.完成清理工作 上述步驟的實現需要使用到四個巨集 va list va start va list,arg va arg va list,type va end va list...