Я работаю над встроенной системой, использующей ash вместо bash, и пытаюсь вызвать скрипт из кросс-скомпилированной программы на Си.
Это работает, но не в фоновом процессе, как я спрашиваюЭто.На самом деле, похоже, что команда strcat не работает, но меня это беспокоит.
Я довольно нов в C, это должно быть что-то очевидное.
Код:
char mycall[230] = "/home/root/myscript.sh ";
char inbackground[3]= " &";
// buf is initiated and will be used as a parameter, string length is about 20 characters
strcat(buf,inbackground);
strcat(mycall,buf);
printf("%s", mycall); // this will display the command and parameter that was stored with
// in buf correctly, but without the ampersand at the end
system(mycall); // executes correctly
Отображение на экране:
sh: syntax error: "&" unexpected
Почему это происходит?