![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| Alexk |
|
|||
|
Unregistered |
Мне необходимо из под доса зпустить фаил, но так чтобы он после своего завершения вернул возжи тому процессу который его вызвал!
Да я знаю есть функции spawn.. exec.. Он exec не возращает управление.... А spawn постоянно говорит, что ему не хватает памяти, как бы я не кочевряжился с его ключами и параметрами, причем опробовал это на несколиких компах результат тот-же. Подскажите, что делать... |
|||
|
||||
| pish_r |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 105 Регистрация: 27.2.2003 Репутация: нет Всего: нет |
попробуй system()
--------------------
________________-=тУт быЛ pisH_r=- |
|||
|
||||
| Step |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5151 Регистрация: 26.9.2002 Где: дурдом.UA Репутация: 5 Всего: 25 |
модуль систем а не функция
-------------------- - Дурак учится на своих ошибках, умный на чужих. - умные учатся у дураков |
|||
|
||||
| Step |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5151 Регистрация: 26.9.2002 Где: дурдом.UA Репутация: 5 Всего: 25 |
-------------------- - Дурак учится на своих ошибках, умный на чужих. - умные учатся у дураков |
|||
|
||||
| Alex101 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 891 Регистрация: 8.4.2002 Где: Москва Репутация: нет Всего: 10 |
Если использовать spawn (под ДОС), то не надо самому ничего выделять. Возможно, причина кроется в модели памяти твоей программы... Это сообщение отредактировал(а) Alex101 - 21.3.2003, 00:05 -------------------- С уважением, А. Фролов. |
|||
|
||||
| Chingachguk |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1232 Регистрация: 25.3.2002 Где: Москва Репутация: нет Всего: 18 |
Запуск внешней программы ничем не отличатеся от запуска основной программы с точки зрения памяти: пусть вначале есть некая память (в досе это, грубо говоря, пространство выше дос и ниже 640K/нажми mem /d /p): DOS (command.com, etc) --------------------------- drivers (like keyrus.com) --------------------------- Memory for user programs (free) --------------------------- Video, etc Если ты запускаешь прогу на выполнение, то она занимает определенное место в Memory for user programs: DOS (command.com, etc) --------------------------- drivers (like keyrus.com) --------------------------- Memory for user programs 1. Parent program (first process) <rest of memory> --------------------------- Video, etc Первая программа (Parent program) может точно так же пускать в оставшейся памяти (rest of memory) cледующую программу, если только размер ее больше или равен, чем нужно для запуска этой следующей программы (Child program): DOS (command.com, etc) --------------------------- drivers (like keyrus.com) --------------------------- Memory for user programs 1. Parent program (first process) 2. Child program (second process) <rest of memory'> --------------------------- Video, etc После запуска Child'а Parent пассивно висит и ожидает, пока Child корректно вернется в дос, а тот ужо вернет все ей. Стало быть, ясно, штаа для запуска другой проги нужно дать ей память. Почему же может быть так, что небольшой экзешник сел в память (Parent), но ничего пускать из-под себя не может ? Ведь пусть он будет 40 кил, это меньше, чем всего свободной (обычно около 500 кил). Фича в том, что при старте проги дос смотрит на хидер проги (если это экзе) и выдает основной проге места много больше, чем она занимает на винте: это и место под стек (до 64 кил), а самое главное - в зависимости от какого-то там битика в хидере дос вообще выдает всю свободную память программе (это происходит всегда для COM-программ). Насколько я помню, некоторые сишные компиллеры стараются сделать занимаемую память программой по минимуму, некоторые - нет (посмотреть опции ?). Самый простой способ - это сделать com, освободить все, кроме одного своего сегмента и пускать проги. -------------------- I don't like the drugs (but the drugs like me). M.Manson. |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |