snprintf vsnprintf的用法


SYNOPSIS
       #include 

       int printf(const char *format, ...);
       int fprintf(FILE *stream, const char *format, ...);
       int sprintf(char *str, const char *format, ...);
       int snprintf(char *str, size_t size, const char *format, ...);

       #include 

       int vprintf(const char *format, va_list ap);
       int vfprintf(FILE *stream, const char *format, va_list ap);
       int vsprintf(char *str, const char *format, va_list ap);
       int vsnprintf(char *str, size_t size, const char *format, va_list ap);

snprintf与vsnprintf都是将n字节写入str所指向的内存,n的大小包含'\0'

如果要写入的字符串的长度大于或者等于n,则源字符串被截断,并且不会向目的内存写入'\0'

函数的返回值为实际写入字节数的大小,所以,如果函数返回值大于或者等于n,则证明源字符串被截断

你可能感兴趣的:(Linux系统调用)