Вы не можете создавать псевдонимы библиотечных функций, но вы можете создавать собственные псевдонимы с помощью директив препроцессора.
Например:
mylib.h:
#include <stdio.h>
void my_puts(char *c);
#define puts(arg) my_puts(arg)
mylib . c:
void my_puts(char *c)
{
(puts)(c);
}
Теперь, когда кто-то звонит puts
, он заменяет вызов на my_puts
. Кроме того, когда вы хотите вызвать «настоящую» функцию в своей оболочке, вы можете поместить имя функции в кавычки. Поскольку макрос, выполняющий подстановку, является функционально-подобным макросом, круглые скобки предотвращают подстановку.