#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")
Почему это происходит и как избежать проблемы?
Решил проблему с помощью execl ("/system/bin/sh", "sh", "test.sh")
где test.sh - это мой файл сценария с эхом nikhil
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