![]() |
Модераторы: xvr |
![]() ![]() ![]() |
|
MastEdm |
|
|||
![]() Master ![]() Профиль Группа: Участник Сообщений: 178 Регистрация: 3.12.2005 Где: Москва, МГИУ Репутация: нет Всего: 2 |
Добрый день.
Нужно написать программу на С++, которая должна уметь: 1. Компилировать код другой посланной ей программы 2. Уметь обнаружить ошибку компиляции 3. Запускать только что скомпилированный код и отлавливать некоторые сигналы (например. SIGSEGV) Все, что приходит в голову, это парсить код посланной программы и заменять в ней функцию main на свою с отлавливанием сигналов. Но мне кажется, что это плохая идея. Компилировать и запускать можно через вызов system() или fork()/exec(), что в принципе почти одно и тоже. Но вот как проводить диагностику ошибок не знаю. Как можно такое замутить? |
|||
|
||||
GrayCardinal |
|
|||
Фигасе ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3039 Регистрация: 9.11.2003 Репутация: 8 Всего: 58 |
Мммм... Ручками ? ![]() |
|||
|
||||
MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 84 Всего: 207 |
fork() -> execve() для gcc читать с stderr pipe() -> dup2() после fork()
fork() -> sigaction() -> execve() для скомпилированной программы -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
MastEdm |
|
|||
![]() Master ![]() Профиль Группа: Участник Сообщений: 178 Регистрация: 3.12.2005 Где: Москва, МГИУ Репутация: нет Всего: 2 |
Ясно. Спасибо
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "С/С++: Программирование под Unix/Linux" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, xvr. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Программирование под Unix/Linux | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |