Прерванный системный вызов для posix_memalign - PullRequest
0 голосов
/ 15 апреля 2011

Я получаю это исключение с posix_memalign.Есть идеи, почему мы это получили?

Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 15 апреля 2011

Проблема решена: дело в том, что граница выравнивания должна быть кратна 2 и sizeof(void *). Так что, если размер указателя равен 4 байта, второй аргумент должен быть 4, 8, 16 и т. Д. Вместо этого я поставил его как кратное 2, и, следовательно, он падал.

Wrong usage: crashes
posix_memalign(&addr, 2, 8);

Correct usage:
 posix_memalign(&addr, 4, 8); // Second argument multiple of void* and 2
0 голосов
/ 15 апреля 2011

Прерванные системные вызовы обычно являются результатом прерывания системного вызова.Другими словами, процесс получает сигнал во время выполнения вызова.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...