Можно ли создать обертку для 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, ...);
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д