Как проверить, читается ли адрес в приложении linux userspace - PullRequest
20 голосов
/ 21 августа 2011

В целях отладки мне нужно проверить указатель, чтобы увидеть, указывает ли он на допустимую читаемую страницу.В настоящее время я выполняю синтаксический анализ / proc / [pid] / maps, чтобы посмотреть, правильно ли сопоставлен адрес, но это выглядит немного запутанным.Есть ли способ лучше?Спасибо.

1 Ответ

19 голосов
/ 21 августа 2011

Каноническим способом является использование системного вызова write() для чтения со страницы (запись в фиктивный дескриптор файла pipe()).Вместо сбоя он вернет -1 с errno == EFAULT, если буфер, переданный в write(), не читается.

...