使用新名称复制功能

时间:2014-07-29 13:52:37

标签: c glibc

我正在创建一个创建打印功能的C库,它基本上执行printf。因此,我希望从glibc创建一个printf副本,但名称为print。如何在不复制所有代码的情况下复制此函数?

(我找到了代码here,但不明白如何在我的库中复制它,或者这样做是否合法。)

3 个答案:

答案 0 :(得分:3)

你去了:

#include <stdarg.h>

void println(const char* format,...)
{
    va_list args;
    va_start(args,format);
    vprintf(format,args);
    printf("\n");
    va_end(args);
}

答案 1 :(得分:3)

您可以使用可变参数宏:

#define println(...)  (printf(__VA_ARGS__), (void) puts(""))

答案 2 :(得分:2)

您可以使用宏:

#define print  printf

或定义包装函数

int print( char *fmt, ... )
{
     va_list ap;
     int n;

     va_start(ap, fmt);
     n = vprintf(fmt, ap);
     va_end(ap);

     return n;
}