system () не выполняется при компиляции с arm-none-linux-gnueabi-g ++

0
#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")

Почему это происходит и как избежать проблемы?

Теги:

2 ответа

0
Лучший ответ

Решил проблему с помощью execl ("/system/bin/sh", "sh", "test.sh")

где test.sh - это мой файл сценария с эхом nikhil

0

system() на самом деле не будет корректно работать с программами с привилегиями set-user-ID или set-group-ID в системах, на которых /bin/sh является версией bash версии 2, поскольку bash 2 снижает привилегии при запуске... http ://linux.die.net/man/3/system

Вы можете попробовать выполнить команду Exec http://linux.die.net/man/3/exec

Ещё вопросы

Сообщество Overcoder
Наверх
Меню