Мне нужно использовать свойство изменения размера FIFO fcntl
, используя F_SETPIPE_SZ
.Для этого мне нужно использовать #define _GNU_SOURCE
.Тем не менее, мой код также включает в себя функцию strerror_r
.Обычно я использую XSI-совместимый его, но когда я добавляю #define _GNU_SOURCE
, он автоматически выдает ошибку по своей природе, так как предпочитает использовать GNU strerror_r
.
error: initialization makes integer from pointer without a cast [-Werror=int-conversion]
int error_num = strerror_r(errno, ERROR_MESSAGE_BUFF, ERROR_MESSAGE_LENGTH);
^~~~~~~~~~
cc1: all warnings being treated as errors
По той же причине мне нужно использовать #define _DEFAULT_SOURCE
также для других объявлений / определений.Как я могу использовать XSI-совместимый strerror_r
вместо того, чтобы использовать следующие два
#define _GNU_SOURCE
#define _DEFAULT_SOURCE