Из программы надо запустить другую. В связи с этим есть два вопроса. Вопросы про 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? Насколько я понимаю, вся выделенная память должна автоматически освобождаться при завершении процесса?