Можно ли создать обертку для int printf(.) - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Хотелось бы создать обертку для int printf(..), чтобы функция корректно работала в многозадачной системе, типо того:
int sem_printf(const char* format, ...) {
    OSSemPend(prnSem);
    int res = printf(format, ...);
    OSSemPost(prnSem);
    return res;
}
Решение для С++ с помощью шаблонов я находил, но нужен Си (ОС с Cpp не работает). Как передать параметры из одной функции с переменным числом параметров в другую? Как я понимаю переменные лежат в стеке внешней функции, а заполнить стек вызываемой не разберая формат не удастся? Или можно как-то написать макрос?

Решение задачи: «Можно ли создать обертку для int printf(.)»

textual
Листинг программы
int vprintf(const char *format, va_list vl);
int printf(const char *format, ...);

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 4.333 из 5
Похожие ответы