The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Программное выполнение команд"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [ Отслеживать ]

"Программное выполнение команд"  
Сообщение от Tonn email(ok) on 29-Апр-09, 08:47 
Здравствуйте всем. Возникла проблема с выполнением команд в Linux программно. Обычные функции типа system() и popen() работают. Но работают с командной оболочкой sh. На других, а именно ash, это не работает. Как быть? Подскажите кто может. Спасибо.
Высказать мнение | Ответить | Правка | Cообщить модератору

 Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Программное выполнение команд"  
Сообщение от phpcoder email(??) on 29-Апр-09, 08:53 
>Здравствуйте всем. Возникла проблема с выполнением команд в Linux программно. Обычные функции
>типа system() и popen() работают. Но работают с командной оболочкой sh.

До сюда понятно о чем речь.

>На других, а именно ash, это не работает. Как быть?

А это я уже не понял. У вас sh = ash или вы запускаете скрипт, который по ash не работает? Или как?

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

2. "Программное выполнение команд"  
Сообщение от Tonn email(ok) on 29-Апр-09, 08:58 
>>Здравствуйте всем. Возникла проблема с выполнением команд в Linux программно. Обычные функции
>>типа system() и popen() работают. Но работают с командной оболочкой sh.
>
>До сюда понятно о чем речь.
>
>>На других, а именно ash, это не работает. Как быть?
>
>А это я уже не понял. У вас sh = ash или
>вы запускаете скрипт, который по ash не работает? Или как?

Скажем так: программа запускается под sh. И в ней же мы выполняется команды под system(). Все работает. Перенсим эту же программу под ash. Она запускается, но при вводе команд при system() скрипт возвращает not found при любой команде.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

4. "Программное выполнение команд"  
Сообщение от angra (ok) on 29-Апр-09, 09:40 
А полный путь к командам пробовали указывать?
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

3. "Программное выполнение команд"  
Сообщение от const86 (ok) on 29-Апр-09, 09:29 
Непонятно, в чём конкретно проблема в ash... Для запуска программ без использования sh есть функции execv и posix_spawn.
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

5. "Программное выполнение команд"  
Сообщение от Tonn email(ok) on 29-Апр-09, 11:49 
>Непонятно, в чём конкретно проблема в ash... Для запуска программ без использования
>sh есть функции execv и posix_spawn.

Вот. Спасибо. Вызов execl("/bin/ash","ash","-c",cmd,0) - решил проблему.
Все таки интересно, почему функции system(), popen() рассчитаны только на sh...

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

6. "Программное выполнение команд"  
Сообщение от Аноним (??) on 29-Апр-09, 12:09 
>Все таки интересно, почему функции system(), popen() рассчитаны только на sh...

sh линк на системный шелл по умолчанию: bash, ash, zsh, и. т. д.
Что показывает ls -l /bin/sh, то и будет запускаться.


Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

7. "Программное выполнение команд"  
Сообщение от Tonn email(ok) on 29-Апр-09, 15:35 
Еще вопрос. Функция execl() выполняет команду, будь это простой ls или запуск сторонней программы, только 1 раз и сразу завершается. А как сделать, чтобы ввод комманд запрашивался постоянно?
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

8. "Программное выполнение команд"  
Сообщение от const86 (ok) on 30-Апр-09, 09:32 
Вопрос туманный. Предполагаю, что ответ - fork или posix_spawn.
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

9. "Программное выполнение команд"  
Сообщение от Tonn email(ok) on 30-Апр-09, 10:33 
>Вопрос туманный. Предполагаю, что ответ - fork или posix_spawn.

Да, все разобрался с fork, waitpid и прочим. Всем спасибо.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру