Форум программистов, компьютерный форум, киберфорум
C/С++ под Linux
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.70/40: Рейтинг темы: голосов - 40, средняя оценка - 4.70
Эксперт С++
 Аватар для Avazart
8489 / 6156 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30

Аналог CreateProcess()

18.04.2018, 11:40. Показов 8689. Ответов 49
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть ли в Linux полноценный аналог виндовой CreateProcess().
Я искал, есть разные ф-ции для работы с подпроцессами, но все они как-то предоставляют только те или иные возможности.
Хотелось бы получать id, работать с перенаправлением вывода - пайпами, возможности ждать завершения процесса, возможности убить процесс итп.

Что наиболее близко к по ф-ционалу CreateProcess() ?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
18.04.2018, 11:40
Ответы с готовыми решениями:

CreateProcess с совместимостью Win95 (програмно)
Странный, возможно кому-то покажется что даже идиотский вопрос: как програмно установить параметрами запуска процесса совместимость с...

кроссплатформенный аналог WinApi функций (CreateProcess)
Всем привет! Есть ли готовое решение для вызова исполняемого файла(в WinAPI это CreateProcess) в разных OS? Добавлено через 15 часов...

CreateProcess()
Доброго времени суток! Делаю лабу по Операционным системам, и столкнулся с некоторыми трудностями. Вот часть задания: Разработать и...

49
Эксперт С++
 Аватар для Avazart
8489 / 6156 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
24.04.2018, 11:05  [ТС]
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Вообще-то очевидно обратное - что ни у кого не работает.
У кого именно не работает кроме Вас?

Добавлено через 2 минуты
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Обновление != поломка совместимости.
Еще как... если Вы будите свою и убунту или какой то диструбутив, то со временем не сможете ничего установить.
Кроме того иногда обновляют ядро после, чего отпадаю по неведомым причинам некоторые программы.

Добавлено через 2 минуты
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Бла-бла-бла. Что там на счет показать свою версию?
Версию чего?
0
Заблокирован
24.04.2018, 11:09
Цитата Сообщение от Avazart Посмотреть сообщение
pipe(), fork(), dup(),exec().
даже ссылку не кинули...
Ты, право, издеваешься... Пишем в консоли man 2/3 <имя функции>. Вот тебе и ссылка. Ну, это ладно. Самое забавное, что в man 2 pipe даже сэмпл есть. То есть, достаточно скопировать код из стандартного мана и просто разобраться.
0
Эксперт С++
 Аватар для Avazart
8489 / 6156 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
24.04.2018, 11:15  [ТС]
Это вы издеваетесь над собой читая ман из консоли ...
Я уже не говорю что сейчас сижу под виндой.
0
 Аватар для COKPOWEHEU
4138 / 2716 / 433
Регистрация: 09.09.2017
Сообщений: 12,050
24.04.2018, 20:56
Цитата Сообщение от Avazart Посмотреть сообщение
У кого именно не работает кроме Вас?
А у кого работает? В интернете за разумное время примеров найти не удалось, тут на форуме только Ygg рискнул настолько глубоко полезть в msdn.
Цитата Сообщение от Avazart Посмотреть сообщение
Еще как... если Вы будите свою и убунту или какой то диструбутив, то со временем не сможете ничего установить.
Кроме того иногда обновляют ядро после, чего отпадаю по неведомым причинам некоторые программы.
Вот когда возникнут проблемы тогда и говорите. Я такого пока не встречал. Более-менее актуальные программы поддерживают чтобы они работали на современных версиях. Не обязательно производитель.
Цитата Сообщение от Avazart Посмотреть сообщение
Версию чего?
анализа msdn, книги или еще чего. Вы утверждаете что Убежденный привел конкретные советы по работе с каналами.
Цитата Сообщение от Avazart Посмотреть сообщение
Это вы издеваетесь над собой читая ман из консоли ...
Вы просто издеваетесь над собой, НЕ делая этого. Похоже, виндузятники все мазохисты... предпочитают искать кряки и превозмогать вирусы, предпочитают рыться в недрах msdn'а вместо нормальных man'ов.
Кстати, помимо man'а есть еще info, для него есть графические интерфейсы.
Цитата Сообщение от Avazart Посмотреть сообщение
Я уже не говорю что сейчас сижу под виндой.
достаточно ввести в гугль ту же самую команду man <что-то там> с 90% вероятностью первой же ссылкой будет ман.
0
Эксперт С++
 Аватар для Avazart
8489 / 6156 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
24.04.2018, 21:30  [ТС]
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
А у кого работает? В интернете за разумное время примеров найти не удалось, тут на форуме только Ygg рискнул настолько глубоко полезть в msdn.
Тот кто Вам дал совет вы не послушали еще и проявили не уважение, ясное дело что других людей тоже желание отпало Вам помогать.

Добавлено через 55 секунд
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Вот когда возникнут проблемы тогда и говорите.
А я и говорю. Если не обновлять систему все катится к чертям.

Добавлено через 2 минуты
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
анализа msdn, книги или еще чего. Вы утверждаете что Убежденный привел конкретные советы по работе с каналами.
Нет он Вам указал на вполне конкретные ошибки, причем детские.
0
 Аватар для COKPOWEHEU
4138 / 2716 / 433
Регистрация: 09.09.2017
Сообщений: 12,050
25.04.2018, 03:14
Цитата Сообщение от Avazart Посмотреть сообщение
Тот кто Вам дал совет вы не послушали еще и проявили не уважение, ясное дело что других людей тоже желание отпало Вам помогать.
С чего бы проявлять уважение после таких высокомерных и бесполезных высказываний (советами назвать язык не поворачивается)?
Цитата Сообщение от Avazart Посмотреть сообщение
А я и говорю. Если не обновлять систему все катится к чертям.
Ох уж эти теоретики... Если программа написана по стандартам, она должна работать на всех системах, поддерживающих эти стандарты. Если используются ввод-вывод на stdio, он будет работать везде где есть компилятор Си. Если система заявляет совместимость с POSIX, можно безбоязненно использовать функции оттуда. Но вот если поменялась архитектура системы, программы, полагающиеся на это, могут поломаться.
Цитата Сообщение от Avazart Посмотреть сообщение
Нет он Вам указал на вполне конкретные ошибки, причем детские.
Ты научишься читать или нет?! В третий раз повторяю: то что там есть ошибки я и так знаю. Это было написано в первом посте той темы. Именно констатация очевидного БЕЗ советов по исправлению снижают уважение. Ну вот не знает он как сделать правильно, так лучше с умным видом промолчать, чем тыкать общеизвестными ссылками, а потом обижаться что бесполезные посты называют бесполезными.
.
Ладно, обсуждение личных качеств меня или Убежденного неинтересно. Повторяю более конструктивный вариант. Если считаете что его советы не были бесполезными, воспользуйтесь ими, доведите программу до конца. Опять же повторяю: в отличие от вас, я не халявщик и не требую готового кода: устроит ответ по образцу из поста 32 или экзешник. Впрочем, я и так знаю какой будет результат...
0
Эксперт С++
 Аватар для Avazart
8489 / 6156 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
25.04.2018, 09:56  [ТС]
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Если считаете что его советы не были бесполезными, воспользуйтесь ими, доведите программу до конца.
Мм, я не помогаю халявщикам )))
И тем более хамам ....

Кроме того у Вас там гавнокод, куда его доводить? Его выкидывать надо и переписывать с нуля.


И если не заметили я кидал ссылку на гитхаб на свою реализацию процесса и пайпов под винду.

Добавлено через 54 секунды
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Ох уж эти теоретики...
А это практика,никакой теории.

Добавлено через 1 минуту
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
то что там есть ошибки я и так знаю.
Ии ? Ошибки нужно исправлять, Вы же гордитесь видимо наличием ошибок.
Вам четко указали нужно проверять коды возвратов ф-ций Вы это сделали?
Нет.

Добавлено через 18 минут
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
чем тыкать общеизвестными ссылками,
А книги тоже бесполезные?
Вам указали на одну из хороших книг вот вам вторая -
Рихтер, Кларк "Программирование серверов под Windows" страница 24 (~37 в djvu)
0
 Аватар для COKPOWEHEU
4138 / 2716 / 433
Регистрация: 09.09.2017
Сообщений: 12,050
25.04.2018, 10:51
Цитата Сообщение от Avazart Посмотреть сообщение
Мм, я не помогаю халявщикам )))
И тем более хамам ....
И почему я не удивлен - ни слова по существу, только оскорблять собеседников горазд.
Цитата Сообщение от Avazart Посмотреть сообщение
Кроме того у Вас там гавнокод, куда его доводить? Его выкидывать надо и переписывать с нуля.
И в третий раз повторяю: хотя бы экзешник с демонстрацией успешности приведите, мне безразлично мой будете использовать или свой с нуля напишете. Поскольку winapi не умеет в анонимные каналы, лучше два экзешника: один пишет в канал, второй читает. Пример вывода первого:
Code
1
2
3
4
write 20 bytes ('a'-'t') to '\\\\.\\pipe\\test_pipe': OK
write 20 bytes ('a'-'t') to '\\\\.\\pipe\\test_pipe': OK
write 20 bytes ('a'-'t') to '\\\\.\\pipe\\test_pipe': FAIL
write 20 bytes ('a'-'t') to '\\\\.\\pipe\\test_pipe': FAIL
второго:
Code
1
2
3
4
read 20 bytes from '\\\\.\\pipe\\test_pipe': FAIL
read 20 bytes from '\\\\.\\pipe\\test_pipe': OK ["abcdefghijklmnopqrst"]
read 20 bytes from '\\\\.\\pipe\\test_pipe': OK ["abcdefghijklmnopqrst"]
read 20 bytes from '\\\\.\\pipe\\test_pipe': FAIL
Если код давать не будете, помощью это не будет, а вот свою позицию подтвердите.
Цитата Сообщение от Avazart Посмотреть сообщение
Вам четко указали нужно проверять коды возвратов ф-ций Вы это сделали?
Нет.
Учимся читать:
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Причем не удается поймать никаких ошибок что данные некорректны. И использование WriteFileEx с callback'ом на окончание записи, и структура OVERLAPPED говорят либо о том, что операция выполнена абсолютно успешно, либо абсолютно неуспешно.
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Тоже проверял. 3-я операция записи (в примере из 3-го поста) операция тоже началась. Если используется WriteFileEx с callback-функцией и функциями ожидания SleepEx, эта функция вызывается, но на результат чтения не влияет.
и так далее.
.
Будете продолжать пустословить или перейдете наконец к конкретике?
0
Эксперт С++
 Аватар для Avazart
8489 / 6156 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
25.04.2018, 11:07  [ТС]
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
write 20 bytes ('a'-'t') to '\\\\.\\pipe\\test_pipe': FAIL
Что такое FAIL ?
Где Ваша пресловутая конкретика? Что там за код ошибки? Описание кода ошибки? Мм?

Добавлено через 5 минут
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
И в третий раз повторяю: хотя бы экзешник с демонстрацией успешности приведите, мне безразлично мой будете использовать или свой с нуля напишете. Поскольку winapi не умеет в анонимные каналы, лучше два экзешника: один пишет в канал, второй читает. Пример вывода первого:
Мм, Вы же понимаете что это называется "напишите за меня?".

Вот есть рабочие примеры:
https://github.com/Avazart/Bic... utPing.cpp
https://github.com/Avazart/Bic... rocess.cpp
Берите и разбирайте.
0
 Аватар для COKPOWEHEU
4138 / 2716 / 433
Регистрация: 09.09.2017
Сообщений: 12,050
25.04.2018, 13:54
Цитата Сообщение от Avazart Посмотреть сообщение
Что такое FAIL ?
Сообщение о том, что канал переполнен и запись невозможна. В случае чтения - что канал пуст. В обоих случаях программа не должна останавливаться, просто спамить ошибками.
Цитата Сообщение от Avazart Посмотреть сообщение
Мм, Вы же понимаете что это называется "напишите за меня?".
"Написать за меня" это привести код. Как мне может помочь скомпилированный экзешник? Вы же сами говорите что в той теме привели исчерпывающие рекомендации по написанию, значит воспользоваться ими должно быть несложно.
.
Сравните с решением основной задачи в этой теме: сразу указали на используемые функции (одна без параметров, вот у exec да, параметры немного неочевидные). Потом, при попытке реализовать базовый функционал (а ваша задача - именно базовый функционал любой уважающей себя ОС), оказалось что не все так очевидно: exec и dup2 лично у меня сразу не заработали, поэтому посмотрел в инете как оно делается (первая же ссылка, могли бы и сами ее найти!). Но раз проблемы возникли у меня как "гуру, решившего показать свое кунг-фу", выложил весь код. А вот с pipe наоборот: сначала описал алгоритм на форуме, потом проверил в коде - сошлось, поэтому, а также потому что добавляется 6 тривиальных строчек кода, понадеялся что вы все-таки примените мозг по назначению. Как оказалось, зря...
Цитата Сообщение от Avazart Посмотреть сообщение
Берите и разбирайте.
Именно сейчас, где-то до июля, может и дольше, глубоко вникать в такие темы времени не будет. А по приведенной ссылке на первый взгляд разбираться надо долго: там куча зависимостей файлов друг на друга.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
25.04.2018, 13:54

CreateProcess
Доброго времени суток. Студия 15. Виндовс форм. Создается процесс &quot;CreateProcess&quot;. Все запускается, все работает. Но не могу вынести...

CreateProcess
Помогите запустить программу вывода дерева каталогов через CreateProcess CreateProcess: #include &lt;windows.h&gt; #include...

CreateProcess
Такая трабла - человечек попросил сделать лабу - там процессы . начал искать решение - нашел вполне понятную функцию fork... но только она...

CreateProcess
Здравствуйте! Как запустить страницу в браузере через CreateProcess? Вот так CreateProcess(ExeFile.c_str(),sPar.c_str(), NULL, NULL,...

CreateProcess
У меня несколько вопросов по CreateProcess 1) как с помощью CreateProcess перенаправить ввод/вывод программы? 2) как узнать какой код...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
50
Ответ Создать тему
Новые блоги и статьи
Запрет пометки на удаление и отмены проведения
Maks 16.07.2026
Алгоритм из решения ниже реализован на нетиповом документе "ПутевойЛист" разработанного в КА2. Задача: запретить помечать на удаление и отменять проведения путевого листа при условии, если он сдан. . .
Как надо было делать правильно - вообще не слушать ИИ, его дело - текст.
Hrethgir 15.07.2026
А вообще надо было делать не так, чтобы не исправлять ошибку https:/ / www. cyberforum. ru/ blogs/ 223907/ 10996. html , правильно было : удалил кнопку, а потом добавил её. Всё это стресс конечно. Почему?. . .
Знаете, от чего появляется стресс?
kumehtar 15.07.2026
Стресс появляется оттого, что вы, зная как поступить правильно, делаете наоборот. Ларри Уингет
Нас бьют, а мы крепчаем? Какая чушь!
kumehtar 15.07.2026
Вот это вот бытующее мнение, что человек меняется только под действием проблем, всегда считал вредоносным. Поверь, от проблем у людей появляются не изменения, а нервное расстройство и ПТСР. А. . .
сукцессия 29. Переход от одних деревьев на другие делать более или менее вероятностным?
anaschu 12.07.2026
Насколько смена типов микоризы — исключительное событие в двухвековой сукцессии? Оценка вероятности в пространстве параметров В текущей версии модели успешно реализован ключевой механизм. . .
сукцессия 27. Думаю, как переделывать уже написанную статью с планами на сукцессию.
anaschu 12.07.2026
Анализ соответствия модели требованиям Реализованные компоненты: Механизм закисления почвы через протонную помпу Конкуренция между типами микориз pH как триггер сукцессии C/ P соотношение. . .
Сукцессия 26. Мат модель создана.
anaschu 12.07.2026
Модель смены растительных сукцессий посредством управления грибами работает внутри небольшой ячейки почвы, восстанавливающейся после пожара, где ненадолго бывшее царство хвойных снова захватили. . .
Решил проблему с ошибкой пагинации сообщений с сервера на алгоритме обхода дерева "Эстафета хвоста".
Hrethgir 12.07.2026
Проблема была в том, что удалялась именно новая кнопка, а не старая. Ни один ИИ не обнаружил это, а сам я смог только когда с работой стало попроще и когда заставил работать будущее автономное. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru