اگه در یک برنامه خطا پیش بیاد exit code اون غیر از صفر میشه مثلا این برنامه را بینید که عمدا درست کردیم که با خطا خارج بشه به عنوان فایل p1.exe کامپایل کنید
//p1.cpp
#include <stdio.h>
int main(int argc, char **argv)
{
int *z=0;
printf("%d,",*z);
}
حالا کد زیر را ببینید این کد برنامه اولی را اجرا می کنه و exit code اون را چاپ می کنه
#include <windows.h>
#include <stdio.h>
PROCESS_INFORMATION p1;
PROCESS_INFORMATION StartNewProcess(char *program)
{
STARTUPINFO startup;
memset(&startup, 0, sizeof(STARTUPINFO));
PROCESS_INFORMATION process;
memset(&process, 0, sizeof(PROCESS_INFORMATION));
CreateProcess(program, NULL,
NULL, NULL,
FALSE,
0 ,
NULL,
NULL,
&startup,
&process);
return process;
}
int main(int argc, char **argv)
{
p1=StartNewProcess("p1.exe");
Sleep(2000);
DWORD a;
GetExitCodeProcess( p1.hProcess,&a);
printf("\n%d\n",a);
CloseHandle(p1.hProcess); CloseHandle(p1.hThread);
}
می بینید که به علت خطا عدد منفی چاپ میشه
حالا خودتون یک برنامه بنویسید که خطا نداشته باشه مثلا یک عدد را چاپ کنه در این صورت عدد 0 چاپ میشه