История изменений
Исправление
Eddy_Em,
(текущая версия)
:
#define warnc(c, format, args...) \
warnx(format ": %s", ## args, strerror(c))
Еще удобные define'ы, которыми пользуюсь:
#ifdef EBUG
#define RED "\033[1;32;41m"
#define GREEN "\033[5;30;42m"
#define OLDCOLOR "\033[0;0;0m"
#define FNAME() fprintf(stderr, "\n%s (%s, line %d)\n", __func__, __FILE__, __LINE__)
#define DBG(...) do{fprintf(stderr, "%s (%s, line %d): ", __func__, __FILE__, __LINE__); \
fprintf(stderr, __VA_ARGS__); \
fprintf(stderr, "\n");} while(0)
#define ERR(...) DBG(__VA_ARGS__)
#else
#define FNAME() do{}while(0)
#define DBG(...) do{}while(0)
#define ERR(...) do{fprintf(stderr, __VA_ARGS__); \
fprintf(stderr, "\n");} while(0)
#endif //EBUG
extern const char *__progname;
#define info(format, args...) do{ \
printf("%s: ", __progname); \
printf(format, ## args); \
printf("\n");}while(0)
Исходная версия
Eddy_Em,
:
#define warnc(c, format, args...) \
warnx(format ": %s", ## args, strerror(c))