- Программное выполнение команд, phpcoder, 08:53 , 29-Апр-09 (1)
>Здравствуйте всем. Возникла проблема с выполнением команд в Linux программно. Обычные функции >типа system() и popen() работают. Но работают с командной оболочкой sh.До сюда понятно о чем речь. >На других, а именно ash, это не работает. Как быть? А это я уже не понял. У вас sh = ash или вы запускаете скрипт, который по ash не работает? Или как?
- Программное выполнение команд, Tonn, 08:58 , 29-Апр-09 (2)
>>Здравствуйте всем. Возникла проблема с выполнением команд в Linux программно. Обычные функции >>типа system() и popen() работают. Но работают с командной оболочкой sh. > >До сюда понятно о чем речь. > >>На других, а именно ash, это не работает. Как быть? > >А это я уже не понял. У вас sh = ash или >вы запускаете скрипт, который по ash не работает? Или как? Скажем так: программа запускается под sh. И в ней же мы выполняется команды под system(). Все работает. Перенсим эту же программу под ash. Она запускается, но при вводе команд при system() скрипт возвращает not found при любой команде.
- Программное выполнение команд, const86, 09:29 , 29-Апр-09 (3)
Непонятно, в чём конкретно проблема в ash... Для запуска программ без использования sh есть функции execv и posix_spawn.
- Программное выполнение команд, Tonn, 11:49 , 29-Апр-09 (5)
>Непонятно, в чём конкретно проблема в ash... Для запуска программ без использования >sh есть функции execv и posix_spawn. Вот. Спасибо. Вызов execl("/bin/ash","ash","-c",cmd,0) - решил проблему. Все таки интересно, почему функции system(), popen() рассчитаны только на sh...
- Программное выполнение команд, Аноним, 12:09 , 29-Апр-09 (6)
>Все таки интересно, почему функции system(), popen() рассчитаны только на sh...sh линк на системный шелл по умолчанию: bash, ash, zsh, и. т. д. Что показывает ls -l /bin/sh, то и будет запускаться.
- Программное выполнение команд, Tonn, 15:35 , 29-Апр-09 (7)
Еще вопрос. Функция execl() выполняет команду, будь это простой ls или запуск сторонней программы, только 1 раз и сразу завершается. А как сделать, чтобы ввод комманд запрашивался постоянно?
- Программное выполнение команд, const86, 09:32 , 30-Апр-09 (8)
Вопрос туманный. Предполагаю, что ответ - fork или posix_spawn.
- Программное выполнение команд, Tonn, 10:33 , 30-Апр-09 (9)
>Вопрос туманный. Предполагаю, что ответ - fork или posix_spawn. Да, все разобрался с fork, waitpid и прочим. Всем спасибо.
|