В системе Gnu я могу написать макрос C, например, dies_ok (), который будет разворачивать новый процесс, запускать фрагмент кода, после чего он может записывать в общий фрагмент памяти, который он не завершил, затемв родительском процессе я могу определить, вышел ли он или нет.Это полезно для тестов:
dies_ok({int x = 0/0;}, "can't divide by zero");
lives_ok({int x = 3/7;}, "this is a perfectly fine statement");
dies_ok({abort();}, "abort kills the program");
Есть ли способ сделать это на MSVC, где нет функции fork?
EDIT: Вот реализация, которая работает на Linux с gcc: http://github.com/zorgnax/libtap/blob/master/tap.h