Ну, код пользовательского пространства использует заголовки пользовательского пространства.Модули ядра используют заголовки ядра (и именно поэтому символические ссылки плохие, потому что вы будете смешивать код пользовательского пространства с заголовками ядра).
Чтобы получить определение CLOCK_MONOTONIC_RAW, вам придется обновить glibc - для определений CLOCK_,заголовки "borderline" (они по-прежнему считаются пользовательским пространством!) в / usr / include / linux не используются.
При установке CentOS 5 по умолчанию вы облажались, потому что и glibc (2.5), и ядро (2.6.18) слишком стар;glibc-2.12 (commit glibc-2.12 ~ 111) и kernel-2.6.28 первыми имеют MONOTONIC_RAW.Это означает, что это должен быть CentOS 6 или что-то еще лучше.
Вы можете попробовать обмануть свой путь, используя в своем коде что-то вроде #ifndef CLOCK_MONOTONIC_RAW, #define CLOCK_MONOTONIC_RAW 4, #endif
, но это считается непереносимым.