![]() |
|
Модераторы: xvr |
![]()
|
|
| devmstr |
|
|||
![]() Developer ![]() ![]() Профиль Группа: Участник Сообщений: 879 Регистрация: 28.4.2004 Где: Ukraine Репутация: нет Всего: 11 |
Я новичек в программировании под Unix(Linux), поэтому не пинайте меня очень сильно.
Как мне из своей C программы выполнить какою-нибудь команду, ну например ls, и получить обратно результат. Помогите, пожайлуста. -------------------- Think different ©Steve Jobs ![]() |
|||
|
||||
| BobiKK |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 655 Регистрация: 1.12.2005 Где: Essen, Deutschlan d Репутация: нет Всего: 16 |
Наверное, стандартный механизм fork-and-exec. Поищите какие-нибудь статейки по этому ключевому слову. Наверняка там будет лучше и глубже расписан этот механизм, чем здесь расскажут.
|
|||
|
||||
| MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 84 Всего: 207 |
devmstr,
кратко
Это сообщение отредактировал(а) MAKCim - 10.11.2006, 11:09 -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
| Dude03 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 257 Регистрация: 28.4.2006 Репутация: 1 Всего: 6 |
Если тебе не надо чисто на системных вызовах, то можешь попробовать функцию system из стандартной библиотеки си. Вроде нао подключить stdlib.h |
|||
|
||||
| MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 84 Всего: 207 |
можешь еще popen, pclose попробовать
Это сообщение отредактировал(а) MAKCim - 10.11.2006, 11:15 -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
| BobiKK |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 655 Регистрация: 1.12.2005 Где: Essen, Deutschlan d Репутация: нет Всего: 16 |
||||
|
||||
| devmstr |
|
|||
![]() Developer ![]() ![]() Профиль Группа: Участник Сообщений: 879 Регистрация: 28.4.2004 Где: Ukraine Репутация: нет Всего: 11 |
MAKCim
Громадное спасибо. Именно то, что мне нужно. Взяв за основу ваш пример и разобравшись в том, что мне нужно использовать fork и execlp я написал свой. Все работает. А можно вопрос по Вашему листингу? Какое предназначение
-------------------- Think different ©Steve Jobs ![]() |
|||
|
||||
| MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 84 Всего: 207 |
cоздание канала грубо говоря создание буфера обмена между двумя родственными процессами pipe() возвращает 2 дескриптора - на запись и на чтение, собственно эти операции (read/write на дескрипторах) синхронизируются ядром, потому канал - хороший способ взаимодествия дочернего и родительского процессов при передаче небольших по объему данных (буфер канала обычно не сильно велик) Если в примере не использовать канал - весь вывод ls пойдет на STDOUT_FILENO (по умолчанию либо терминал, либо псевдотерминал для X) и мы не сможем обработать вывод -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
| vdim |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 33 Регистрация: 19.4.2008 Репутация: нет Всего: нет |
А могут ли способы через popen либо через execlp передать более чем 4096 байт?
|
|||
|
||||
| MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 84 Всего: 207 |
могут -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
![]()
|
| Правила форума "С/С++: Программирование под Unix/Linux" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, xvr. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Программирование под Unix/Linux | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |