LINUX.ORG.RU

История изменений

Исправление 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))