Эквивалент _vscprintf на Android? - PullRequest
       4

Эквивалент _vscprintf на Android?

4 голосов
/ 19 октября 2011

_vscprintf недоступно на Android.Также vsprintf(NULL, fmt, ap) не работает (выдает ошибку сегмента), поэтому, похоже, нет способа рассчитать размер буфера, необходимого для успеха vsnprintf?

Android source указывают, что __android_log_printфункция просто усекает строки до 1024, используя vsnprintf ...

Как вы справляетесь с этим сценарием?

1 Ответ

12 голосов
/ 19 октября 2011

Раздел [7.19.6.13] - Функция vsprintf стандарта C99 не устанавливает, что буфер вывода может быть NULL.

Возможно, вы захотите использовать vsnprintf:

int len = vsnprintf(NULL, 0, fmt, ap)

Если вызов успешен, возвращаемое значение - это количество символов, которое было бы записано, если бы буфер был достаточно большим, исключая терминатор NUL.Это похоже на _vscprintf, который также не включает терминатор NUL в свой счет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...