函式簡介
頭檔案:
#include <stdarg.h>
函式聲明:
int _vsnprintf(char* str, size_t size, const char* format, va_list ap);
參數說明
char *str [out],把生成的格式化的字元串存放在這裡.
size_t size [in], str可接受的最大字元數 (非位元組數,UNICODE一個字元兩個位元組),防止產生數組越界.
const char *format [in], 指定輸出格式的字元串,它決定了你需要提供的可變參數的類型、個數和順序。
va_list ap [in], va_list變數. va:variable-argument:可變參數
1.char *str [out],把生成的格式化的字元串存放在這裡.
2.size_t size [in], str可接受的最大字元數 (非位元組數,UNICODE一個字元兩個位元組),防止產生數組越界.
3.const char *format [in], 指定輸出格式的字元串,它決定了你需要提供的可變參數的類型、個數和順序。
4.va_list ap [in], va_list變數. va:variable-argument:可變參數
函式功能:將可變參數格式化輸出到一個字元數組。
用法類似於vsprintf,不過加了size的限制,防止了記憶體溢出(size為str所指的存儲空間的大小)。
返回值:執行成功,返回最終生成字元串的長度,若生成字元串的長度大於size,則將字元串的前size個字元複製到str,同時將原串的長度返回(不包含終止符);執行失敗,返回負值,並置 errno.
備註:
linux環境下是:vsnprintf
VC6環境下是:_vsnprintf
用法實例
輸出 9。
asd,2,3,4
123456789 (共9個字元,間隔符逗號計算在內)
返回值用法
代碼在vc6.0下調試通過。