怎的让C++控制台程序重启

怎样让C++控制台程序重启
我想要的是通过函数里面的语句实现重启,而不是人为打开,有哪位大神有好的方法吗?是控制台程序。

------解决方案--------------------
CreateProcess
system
ShellExecute
等函数
------解决方案--------------------
先获取本进程exe的地址
argv[0]参数或者GetMoudleName/*HANDLE=NULL*/;
然后ShellExecuteEx打开
ExitProcess退出
------解决方案--------------------
/*开启新的程序*/
QString applicationFilePath = QCoreApplication::applicationFilePath();
wchar_t *pPath = new wchar_t[applicationFilePath.length()+1];
memset(pPath, 0, (applicationFilePath.length()+1)*2);
applicationFilePath.toWCharArray(pPath);
::ShellExecute(NULL, L"open", pPath, NULL, NULL, SW_SHOW);
delete []pPath;
------解决方案--------------------
C/C++ code
Processes the specified function at exit.

 
int atexit(
   void (__cdecl *func )( void )
);

------解决方案--------------------
linux中可以用信号来实现 signal
------解决方案--------------------
比如myprog.exe是你的可执行程序名,生成一个a.bat文件,然后system("a.bat");
a.bat文件内容为
taskkill /IM myprog.exe
start myprog.exe