Лучше всего на сегодняшний день придерживаться API в следующем порядке приоритета.
Ваш языковой API (здесь вам не очень помогает, но, скажем, для строк, строковую функцию C99 лучше использовать, чем библиотечную строковую функцию, указанную в Posix или другом стандарте ОС.)
API-интерфейсы операционных программ Posix
Документированные API ядра
Недокументированные API ядра (по крайней мере, они сломают, скажем, пользователей ioctl, если они изменятся, поэтому они, вероятно, не изменятся)
/proc
/dev/kmem
, /dev/mem
Нет оснований полагать, что троллинг /proc
будет переносимым или даже одинаковым от выпуска к выпуску. Не в каждой системе даже установлен /proc
!
Сказав все это, намного проще просто соскоблить материал с /proc
, и если это единственный доступный интерфейс, то вы должны пойти дальше и использовать его. Qa
Наконец, порядок последних двух не совсем понятен, потому что /proc
недоступен для анализа дампов после аварийного сбоя ядра, но инструменты, которые могут просмотреть дамп ядра, все равно будут работать.