android - Android 上的 _vscprintf 等效?

标签 android c android-ndk printf

_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/

相关文章:

javascript - jQuery Mobile ListView 中的响应式图像

c - 如何使用 fscanf 读取文件中的数据

android - 在Android Studio中更新Gradle NDK

opencv - 代码未使用android ndk显示灰度图像

android - 如果我从 Play 开发者控制台删除了一个 APK,在我点击发布之前它是否仍然可以下载?

android - 针对 Android 的 libusb 进行编译和链接

java - libgdx - ui SpriteBatch 需要根据窗口大小进行缩放?

c++ - 多线程写入套接字

c - GtkApplication 的初始化 - 我应该使用 GObject 的 "init"还是 GtkApplication 的 "startup"?

android - Android.mk 中 prebuilt_static_libraries 顺序的链接是否敏感?