Сбой исполняемого файла (SEGV_MAPERR) при доступе к семафору POSIX на целевой машине - PullRequest
0 голосов
/ 05 сентября 2018

Я создал исполняемый файл, который пытается получить доступ и получить состояние или изменить состояние существующего именованного семафора POSIX, созданного процессом на целевой машине (Ubuntu 16.04), работающей на уровне детализации: -19. Мою программу я сделал на С ++ на Ubuntu 16.04. При доступе к семафору на целевом компьютере с помощью программы, скомпилированной на целевом компьютере, доступ к семафору и его корректное изменение выполняются. Но при обращении к скомпилированному исполняемому файлу моей машины это вызывает ошибку сегментации SEGV_MAPERR. При тестировании с другой программой блокировки / разблокировки семафора на моем компьютере, программа работает. Я сохраняю права доступа как 777 и помечаю как O_CREAT | O_EXCL для программ обеих программ на обеих машинах.

Ошибка при работе на целевой машине.

Возврат по GDB на целевой машине

Я использую библиотеку semaphore.h на обеих машинах. Спасибо.

1 Ответ

0 голосов
/ 15 сентября 2018

Решил это. Мне просто нужно было удалить флаг O_EXCL, и я также должен был запустить свое приложение от имени пользователя root.

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