System()在使用arm-none-linux-gnueabi-g++编译时不会执行
system() not executed when compiled with arm-none-linux-gnueabi-g++
#include <stdio.h>
#include <stdlib.h>
int main()
{
printf("Hellon");
system("echo nikhil");
printf("Hellon");
getchar();
return 0;
}
当使用arm-none-linux-gnueabi-g++编译这段代码时,系统调用被跳过,所有其他指令都被执行,除了系统("echo nikhil")
为什么会发生这种情况,如何避免这个问题?
在/bin/sh是bash版本2的系统上,system()实际上不能在具有set-user-ID或set-group-ID权限的程序中正常工作,因为bash 2会在启动时删除权限…http://linux.die.net/man/3/system
您可以尝试使用Exec命令http://linux.die.net/man/3/exec
使用execl("/系统/bin/sh"、"上海","test.sh")
test.sh是我的脚本文件,有echo nikhil相关文章:
- 如何确认我的constexpr表达式实际上已经在编译时执行
- 我编写了代码将十进制分数转换为其二进制等效数.它编译得很好,但在执行时挂起
- 如何使字符串出现在编译的二进制可执行文件的开头?
- 在Linux上使用Clang / OLLVM交叉编译helloworld Windows可执行文件时的问题
- 尝试在Windows上执行C++时出错(通过MinGW编译)
- 编译的C可执行文件被Windows defender检测为病毒
- 编译的代码不执行文件写入
- 在C++中执行 N 阶乘编译时间的 3 种不同/相同方法
- C++项目编译强制使用 /clr 选项,尽管在没有公共语言运行时支持的情况下执行它
- 编译器如何在编译时执行数据绑定?
- Qt Creator 在执行步骤 "make" 时出现编译错误,-fno-stack-limit
- CPP 中 z3 的编译和执行命令?
- CMake 添加和删除宏定义以编译共享库/可执行文件
- 编译可执行文件之前未生成的文件
- 编译并执行C#程序中的C++代码
- 使用共享库编译可执行文件时仅链接所需的符号
- 在C++中编译/执行 GDAL 时出现问题
- c++11用户定义的字面量,与编译/执行二分法冲突
- 在Emacs中保存-编译-执行c++程序的快捷方式
- Raspi 的交叉编译 - 执行程序以 "Segmentation fault" 结束