android - 在 Linux 中从 C++ 调用时系统返回错误 127

标签 android linux system

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

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

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

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

是编译器的问题还是路径的问题?

最佳答案

system() 实际上,在/bin/sh 是 bash 版本 2 的系统上,具有 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 并且有效

关于android - 在 Linux 中从 C++ 调用时系统返回错误 127,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24380594/

相关文章:

linux - 如何将 linux lscpu 命令与 windows cpu 信息映射

java - 在 Eclipse 中生成随机数时崩溃

linux - TCP SYN/SYN ACK 的 IP header 中的 Dscp 值

linux - 在将一个方法的输出发送到另一个之前传递和修改它

linux - 如何在 Linux 上使用 sudo 在后台运行 dotnet 应用程序?

c - 我的系统调用使用错误

无法在 C 中使用 system() 函数执行 "cat"

java - ARToolKit标记检测java方法

Android Studio 项目结构显示不正确

android - 如何从 MaterialComponents.DayNight 主题更改工具栏文本颜色?