系统在linux中从c ++调用时返回错误127

时间:2014-06-24 07:17:46

标签: android linux system

命令" am start -n packagename / .activityname "必须在adb shell中运行,并且要包含在C ++程序中

我在我的C ++程序中添加了行系统(" am start -n packagename / .activityname"),当程序在adb shell中运行时, 系统命令返回错误代码127并且shell命令未运行

使用的编译器: arm-linux-none-gnueabi-g ++

当我使用g ++编译器时它正在工作

编译器或路径有问题吗?

1 个答案:

答案 0 :(得分:2)

实际上,在/ bin / sh为bash版本2的系统上,system()不会对具有set-user-ID或set-group-ID权限的程序正常工作,因为bash 2在启动linux上删除了特权.die.net / man / 3 / system

而不是系统我使用 execl(“/ system / bin / sh”,“sh”,“test.sh”)

其中test.sh有 am start -n packagename / .activityname 并且有效