当前位置: 首页 > 知识库问答 >
问题:

用arm-none-linux-gnueabi-g++编译时未执行system()

那开济
2023-03-14
#include <stdio.h>
#include <stdlib.h>

int main()
{ 
    printf("Hello\n");
    system("echo nikhil");   
    printf("Hello\n");
    getchar();
    return 0;
}

当使用arm-none-linux-gnueabi-g++编译此代码时,系统调用将被跳过,除了系统(“echo nikhil”)之外,所有其他指令都将被执行

共有1个答案

单耘豪
2023-03-14

实际上,system()在/bin/sh为bash Version2的系统上不能从具有set-user-ID或set-group-ID权限的程序中正常工作,因为bash 2在启动时会删除权限...http://linux.die.net/man/3/system

您可以尝试使用Exec命令http://linux.die.net/man/3/Exec

 类似资料:
  • 问题内容: arm-eabi,gnueabi和gnueabi-hf交叉编译器有什么区别?我发现很难选择编译器。是否有用于arm的本地编译器? 问题答案: 我不确定: eabi代表将在裸机手臂内核上运行的代码的编译。 gnueabi代表linux的代码编译 对于gnueabi / gnueabi-hf部分,我在这里找到了答案。 gcc-arm-linux-gnueabi是用于armel体系结构的跨工

  • 问题内容: 我有关于交叉编译的问题。 这是我使用的一个简单的hello world代码。 我正在使用从导师图形下载的arm-none-eabi-g ++。这是错误。我不知道会错过什么lib。 这是编译器版本。 $ arm-linux-gnueabi-g ++ -v 使用内置规格。COLLECT_GCC = / home / kang / Utils / arm-2013.05 / bin / ar

  • 我正在尝试为Ubuntu安装gnu arm工具链。我首先从CodeSourcery下载了tar。但是,当我进入bin文件夹时,我不能运行任何二进制文件。我尝试了使用。/和不使用,并将其放入路径中,它一直告诉我“command not found”,但文件就在我面前的文件夹中。然后我尝试了sudo apt-get install gcc-arm-linux-gnueabi,但是在它说它已经成功安装之

  • 问题内容: 我正在运行Ubuntu 12:04LTS,并安装了arm-linux-gnueabi C和C ++编译器。编译后的二进制文件无法在我的目标板上运行。看起来,即使我指定了cpu和arch,编译器仍会为错误的CPU构建二进制文件。它代替了atm9tdmi并构建了7-A。 我做错了什么还是应该配置一些东西?谢谢。 问题答案: 您的编译器支持armv4t,问题是您的链接器必须将您的目标文件与l

  • 似乎默认情况下,Clang采用了GNU汇编程序语法。 如何用Clang编译一个汇编文件使用ARM语法像this(指令)和this(指令)?