Из программы надо запустить другую. В связи с этим есть два вопроса.
Вопросы про linux.
1. Корректно ли делать fork+exec из одного из thread-ов?
2. Скажем есть такая программа:
class C1
{
public:
C1() { printf("подписаться на события\n"); }
~C1() { printf("отписаться от событий\n"); }
int get_message() { return 0; };
};
C1 c1;
int main(void)
{
pid_t pid = -1;
pid = fork();
if(0 == pid)
{
execl("/wrong_path", "/wrong_path");
exit(1);
}
// while(0 == c1.get_message())
// {
// printf("do something\n");
// }
return 0;
}
Тут еще надо добавить обработчик SIGCHILD, чтоб зомби не оставались.
Если exec по какой-то причине не выполнится, то произойдет следущее:
[vasya@vasya 0]$ ./a.out
подписаться на события
отписаться от событий
отписаться от событий
Вместо exit пишу _Exit, то деструкторы не вызываются и всё происходит так как мне надо.
[vasya@vasya 0]$ ./a.out
подписаться на события
отписаться от событий
Корректно ли здесь использовать _Exit? Насколько я понимаю, вся выделенная память должна автоматически освобождаться при завершении процесса?
Ответ на:
комментарий
от vasirck

Ответ на:
комментарий
от cvv

Ответ на:
комментарий
от cvv
Ответ на:
комментарий
от vasirck

Ответ на:
комментарий
от cvv
Ответ на:
комментарий
от Die-Hard
Ответ на:
комментарий
от anonymous
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум fork(), exec(), wait() (2020)
- Форум fork() (2020)
- Форум [fork()+getpid()] Мааа...ленький вопросик (2008)
- Форум [c][perl?] exec (2008)
- Форум Чтение выхлопа процесса без ожидания его завершения (2019)
- Форум Перехват Crtl+C (2001)
- Форум Реализация конвейра (2019)
- Форум Взаимодействие system в php и fork+exec конструкции в исполняемой программе. (2013)
- Форум Блокировка файла (fcntl) (2009)
- Форум fork + popen. Залипание на wait при SIGCHLD (2019)