Unix альтернатива этому времени выполнения кода MINGW

MinGW использует этот код в качестве запуска для каждой программы

static void  __attribute__((noreturn)) __mingw_CRTStartup (void)
{
int nRet;
SetUnhandledExceptionFilter (_gnu_exception_handler);
_fpreset ();
_mingw32_init_mainargs ();
_mingw32_init_fmode ();
_pei386_runtime_relocator ();
asm  __volatile__  ("andl $-16, %%esp" : : : "%esp");
nRet = main (_argc, _argv, environ);
_cexit ();
ExitProcess (nRet);
}

Какая альтернатива для Linux для линейки ExitProcess(nRet); который завершает все потоки и обрабатывает возвращаемое значение? Где я могу найти исходный код для Linux / OS X GCC Runtime? Завершает ли среда выполнения Linux-GCC / XCode все потоки? Если нет, то как он обрабатывает возвращаемые значения main?

0

Решение

Соответствующий код, который немного сложнее в «glibc», чем приведенный выше код MingW (потому что у него много опций, с которыми связаны как компиляция, так и выбор времени выполнения):

http://sourceware.org/git/?p=glibc.git;a=blob;f=csu/libc-start.c;h=a14ed71616a3f63f092837e9c30780f8344b4fbe;hb=cvs/glibc-2_9-branch

Тем не менее, простое представление таково:

result = main (argc, argv, __environ MAIN_AUXVEC_PARAM);
exit (result);

И да, exit будет убивать все потоки (если ничего другого, ОС будет, когда системный вызов для выхода вызывается в _exit(),

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector