_vscprintf
在 Android 上不可用。此外 vsprintf(NULL, fmt, ap)
不起作用(产生段错误),因此似乎无法计算 vsnprintf 成功所需的缓冲区大小?
安卓sources表示 __android_log_print
函数只是使用 vsnprintf 将字符串截断为 1024...
您如何处理这种情况?
最佳答案
C99 标准的 [7.19.6.13] 节——vsprintf
函数没有声明输出缓冲区可以是 NULL
。
你可能想使用 vsnprintf
:
int len = vsnprintf(NULL, 0, fmt, ap)
如果调用成功,返回值是在缓冲区足够大的情况下本应写入的字符数,不包括 NUL 终止符。这类似于 _vscprintf
,它也不包括 NUL 终止符。
关于android - Android 上的 _vscprintf 等效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7825648/