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

2022-05-05 09:33:06 字數 1035 閱讀 7273

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

編輯標頭檔案:

#include

函式宣告:

int _vsnprintf(char* str, size_t size, const char* format, va_list ap);

引數說明:

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

size_t size [in], str可接受的最大字元數[1]  (非位元組數,unicode乙個字元兩個位元組),防止產生陣列越界.

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

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

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

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

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

.[2]

備註:linux環境下是:vsnprintf

vc6環境下是:_vsnprintf

1 #include 2 #include 3

int mon_log(char*format, ...)413

//呼叫上面的函式

14void

main() 

15

輸出 9。

asd,2,3,4

123456789 (共9個字元,間隔符逗號計算在內)[2]

1 #include 2 #include 3 #include 4

char *make_message(const

char *fmt, ...) 526

}27intmain()

28

vsnprintf列印可變引數的log

vsnprintf,c語言庫函式之一,屬於可變引數。用於向字串中列印資料 資料格式使用者自定義。標頭檔案 include 函式宣告 int vsnprintf char str,size tsize,constchar format,va listap 引數說明 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...

可變引數 函式 可變引數列表 1

我們在c語言程式設計中有時會遇到一些引數個數可變的函式,即函式的入參個數和型別是不確定的,例如printf 函式,其函式原型為 int printf char format,它除了有乙個引數format固定以外,後面跟的引數的個數和型別是可變的 用三個點 做引數佔位符 實際呼叫時可以有以下的形式 p...