840 / 478 / 58
Регистрация: 18.09.2012
Сообщений: 1,688
|
|||||||||||
1 | |||||||||||
Запустить процесс и передавать ему аргументы16.05.2014, 22:44. Показов 5065. Ответов 10
Метки нет Все метки)
(
Всем доброго времени суток. Тут вопрос, может быть бредовый, но у меня не хватает мозгов что-то разобраться в этом. Вообщем задача( на приметивном уровне): запустить процесс с командой( не важно, можно просто запустить питон в фоне, можно обычную команду "echo" - shell), что бы он весел как дочерний, и скармливать ему аргументы по очереди. Т.е.
Сейчас у меня получается только:
0
|
|
16.05.2014, 22:44 | |
Ответы с готовыми решениями:
10
Как передавать аргументы в функцию-обработчик при нажатии на кнопку? Как передавать в cmd аргументы?
Как передавать аргументы между функциями? |
17.05.2014, 08:16 | 2 |
1
|
3254 / 2056 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
|
|
17.05.2014, 08:49 | 3 |
А точно надо?
В любом случае, communicate закрывает канал. Как обойти - напрямую писать в stdin. Подробнее тут https://gist.github.com/waylan/2353749
1
|
840 / 478 / 58
Регистрация: 18.09.2012
Сообщений: 1,688
|
|
17.05.2014, 13:01 [ТС] | 4 |
Точно, я в этом уверен.
Добавлено через 1 час 8 минут sanodins, вам спасибо, но увы это будет делаться на лине( это не для вирусов), хотя попробую перенести. 0x10, stdin тоже думал, но тут один минус, к сожалению, stdin дописывает в конец, а мне надо что-то типо: процес запустили, он висит себе, потом ему скормили данные, он отдал данные, он опять висит, потом опять скормили, он отдал ответ, опять висит.
0
|
3254 / 2056 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
|
|
17.05.2014, 13:08 | 5 |
А сам процесс в принципе реализует такой протокол?
0
|
840 / 478 / 58
Регистрация: 18.09.2012
Сообщений: 1,688
|
|
17.05.2014, 13:09 [ТС] | 6 |
0x10, эмм, а можно вопрос переформулировать?
0
|
3254 / 2056 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
|
|
17.05.2014, 13:16 | 7 |
Я перестаю что-либо понимать, поэтому давайте с самого начала.
Stdin - это непрерывный поток. Вполне естественно, что данные, отправляемые в него, будут записываться "в конец". Т.е. в любом случае нужен какой-то признак окончания текущей порции данных. Вот я и уточняю: процесс как-то распознает границы сообщений?
0
|
840 / 478 / 58
Регистрация: 18.09.2012
Сообщений: 1,688
|
|
17.05.2014, 13:20 [ТС] | 8 |
0x10, похоже стало доходить.... Т.е. если я скажем напишу скрипт, который будет читать из stdin, и всю логику запихну туда. Создам еще один скрипт, там создам процесс( вызов скрипта) и в процесс буду через stdin пихать данные, то это и будет примерно то, что я хотел. Я правильно понял?
0
|
3254 / 2056 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
|
||||||
17.05.2014, 13:40 | 9 | |||||
Пока я пытаюсь что-то понять, вот для примера взаимодействие с cat. Разделитель - символ перевода строки.
Подумал еще и понял, что все равно ничего не понимаю. Как запускаемый процесс обрабатывает поток данных? Это свой скрипт или конкретная утилита?
1
|
17.05.2014, 14:35 | 10 | |||||
запусти программу которая ждет на вход строку=buf, и по получению выполняет 'exec'
А так и способ от 0x10, будет работать с любой программой, потому что они все почти работают через аргументы, то есть программа при передаче ей аргументов выполняет какие либо функции
1
|
840 / 478 / 58
Регистрация: 18.09.2012
Сообщений: 1,688
|
|
17.05.2014, 17:20 [ТС] | 11 |
0x10, во, дошло, спасибо. Похоже понял.
0
|
17.05.2014, 17:20 | |
Помогаю со студенческими работами здесь
11
Какие аргументы передавать при генерации события? Зачем передавать аргументы (параметры) в метод main()?
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |