Модераторы: feodorv, GremlinProg, xvr, Fixin
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Помогите сис-вызовы Линух, перевести в Виндовые 
:(
    Опции темы
comcon1
Дата 24.10.2005, 17:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 838
Регистрация: 11.6.2005
Где: Москва ДАС-МГУ

Репутация: нет
Всего: 17



Вот вырезка из моей проги в линухе..

Код

        int childPID = fork();
        assert (childPID != -1);
    if ( childPID == 0 ) {
          execvp(_gms_exec, arglist);
          throw EFatal(30, _gms_exec);
        } else {
          int statu;
          cout << "waiting for estimation finished..." << std::flush;
          wait (&statu); 
          if ( WIFEXITED(statu) == 0 ) throw 
            EFatal(30, _gms_exec);
          if ( WEXITSTATUS(statu) != 0) throw 
            EFatal(16, _gms_exec);
         }


Подскажите, как это будет выглядеть в Win32, насчет fork-exec я примерно знаю. А вот что в винде с сигналами -- нет.

PS - EFatal -- это моё исключение...
Заранее спасибо


--------------------
PM MAIL   Вверх
_hunter
Дата 24.10.2005, 17:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 13
Всего: 98



а что эти сигналы делать должны?


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
comcon1
Дата 24.10.2005, 17:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 838
Регистрация: 11.6.2005
Где: Москва ДАС-МГУ

Репутация: нет
Всего: 17



"не вызвался" и "плохо завершился"


--------------------
PM MAIL   Вверх
_hunter
Дата 24.10.2005, 17:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 13
Всего: 98



если я правильно понял и этот сигнал -- результат выполнения функции создания потока -- тогда "не вызвался" -- результат CreateProcess() а "плохо завершился" -- GetExitCodeProcess() после WaitForSingleObject() для handle-а процесса


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
comcon1
Дата 24.10.2005, 18:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 838
Регистрация: 11.6.2005
Где: Москва ДАС-МГУ

Репутация: нет
Всего: 17



Спасибо, но я думаю мне подойдет WinExec. Как выставить второй параметр, чтобы консольное приложение запускалось в том же Шел-е, что и вызвавшее его ??
SW_HIDE ?? или так вообще нельзя..??


--------------------
PM MAIL   Вверх
_hunter
Дата 24.10.2005, 18:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 13
Всего: 98



для WinExec() это поведение не настраивается...


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
comcon1
Дата 24.10.2005, 18:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 838
Регистрация: 11.6.2005
Где: Москва ДАС-МГУ

Репутация: нет
Всего: 17



А для CreateProcess?? -- там такая туча параметров в MSDN-e smile


--------------------
PM MAIL   Вверх
_hunter
Дата 24.10.2005, 19:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 13
Всего: 98



а для него это поведение по умолчанию ( если нужна новая консоль -- это нужно указать в dwCreationFlags )


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
comcon1
Дата 24.10.2005, 19:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 838
Регистрация: 11.6.2005
Где: Москва ДАС-МГУ

Репутация: нет
Всего: 17



О!!! В натуре то, что надо!!

Плеез, напиши, плееез, пример запуска через CreateProcess, как расставлять вход-параметры. А что надо будет поменять -- я уж сам посмотрю. :-)

Или дай ссылку на исходник с примером, а то на MSDN-е примера нет.
--------------------
Я пока через WinExec сделал, чтоб скомпилилось, но потом переделаю с CreateProcess.


--------------------
PM MAIL   Вверх
_hunter
Дата 24.10.2005, 19:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 13
Всего: 98



там, в принципе, все просто:
Код

STARTUPINFO startupInfo; ZeroMemory(&startupInfo, sizeof(startupInfo));
PROCESS_INFORMATION processInformation;

if ( CreateProcess(path, 
NULL,
NULL, 
NULL, 
FALSE,
0,
NULL,
NULL,
&startupInfo,
&processInformation
) )
{
}



--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
comcon1
Дата 25.10.2005, 14:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 838
Регистрация: 11.6.2005
Где: Москва ДАС-МГУ

Репутация: нет
Всего: 17



Большое спасибо!
Будем работать дальше!


--------------------
PM MAIL   Вверх
_hunter
Дата 25.10.2005, 14:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 13
Всего: 98



всегда пожалуйста smile


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Системное программирование и WinAPI"
Fixin
GremlinProg
xvr
feodorv
  • Большое количество информации и примеров с использованием функций WinAPI можно найти в MSDN
  • Описание сообщений, уведомлений и примеров с использованием компонент WinAPI (BUTTON, EDIT, STATIC, и т.п.), можно найти в MSDN Control Library
  • Непосредственно, перед созданием новой темы, проверьте заголовок и удостоверьтесь, что он отражает суть обсуждения.
  • После заполнения поля "Название темы", обратите внимание на наличие и содержание панели "А здесь смотрели?", возможно Ваш вопрос уже был решен.
  • Приводите часть кода, в которой предположительно находится проблема или ошибка.
  • Если указываете код, пользуйтесь тегами [code][/code], или их кнопочными аналогами.
  • Если вопрос решен, воспользуйтесь соответствующей ссылкой, расположенной напротив названия темы.
  • Один топик - один вопрос!
  • Перед тем как создать тему - прочтите это .

На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы .


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема »


 




[ Время генерации скрипта: 0.0483 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.