在目标机器上访问POSIX信号量时可执行崩溃(SEGV_MAPERR)

问题描述 投票:0回答:1

我已经创建了一个可执行文件,它试图访问并获取状态或更改由目标机器(Ubuntu 16.04)上以良好级别运行的进程创建的现有命名POSIX信号量的状态:-19。我的程序,我在Ubuntu 16.04上用C ++编写。在通过目标机器编译的程序访问目标机器上的信号量时,正在正确地访问和更改信号量。但是当我的机器编译的可执行文件访问它时,它会给出SEGV_MAPERR分段错误。在我的机器上使用另一个信号量锁定/解锁程序进行测试时,该程序正常工作。我将权限保持为777并将标志保持为O_CREAT | O_EXCL关于两台机器上的两个程序的程序。

Erro on running on target machine.

Backtrace by GDB on Target machine

我在两台机器上都使用semaphore.h库。谢谢。

c++ linux posix semaphore
1个回答
0
投票

解决了它。我只需要删除O_EXCL标志,我还必须以root身份运行我的应用程序。

© www.soinside.com 2019 - 2024. All rights reserved.