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