void myprintf(const char *format, ...)
{
va_list arglist;
va_start(arglist, format);
vprintf(format, arglist); // or some other operation
va_end(arglist);
}
NAME
printf, fprintf, sprintf, snprintf, vprintf, vfprintf, vsprintf, vsnprintf - formatted output conversion
SYNOPSIS
#include <stdio.h>
int printf(const char *format, ...);
int fprintf(FILE *stream, const char *format, ...);
int sprintf(char *str, const char *format, ...);
int snprintf(char *str, size_t size, const char *format, ...);
#include <stdarg.h>
int vprintf(const char *format, va_list ap);
int vfprintf(FILE *stream, const char *format, va_list ap);
int vsprintf(char *str, const char *format, va_list ap);
int vsnprintf(char *str, size_t size, const char *format, va_list ap);
#include <stdio.h>
#include <stdlib.h>
#include <libgen.h>
#define DBG1(format, ...) do { \
fprintf(stderr, "DBG(%s@%d): "format, basename(__FILE__), __LINE__, ##__VA_ARGS__); \
} while (0)
#define DBG2(format, arg...) do { \
fprintf(stderr, "DBG(%s@%d): "format, __FILE__, __LINE__, ##arg); \
} while (0)
int main(void)
{
DBG1("this is debug info\n");
DBG2("this is debug info\n");
return 0;
}