Можно ли создать обертку для 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, ...);