我在 Windows 上编码,所以 fork() 不可用。现在,我需要运行 execl(),但它是我程序的终点!我想创建一个单独的线程来运行execl(),它创建成功,并且运行良好。但是线程结束后我的程序仍然结束。函数运行线程——它在 wScoreget 类中:——
int refresh_score_now(){
pthread_t t;
if(pthread_create(&t,NULL,s.basicgetscore,&s)==-1){
printf("Error: wScoreget:3");
exit(4);
}
void *a;
if(pthread_join(t,&a)==-1){
printf("Error: wScoreget: 4");
exit(4);
printf("Running thread.\n");
getch();
}
}
从主调用:-
int main(){
wScoreget new_ws;
new_ws.refresh_score_now();
printf("reached to the end\n");
getch();
}
我期待控制台打印-“到达终点”但是在 execl() 上它退出了。注意: execl() 正在运行 curl。它的输出将发送到一个文本文件。现在,如果更改了标准输出,curl 会在控制台上显示下载时间和其他数据。无论如何,这些数据都会进入控制台。
有没有办法在不使用 CreateProcess 的情况下做到这一点?如果我使用 CreateProcess,我必须在 Windows 上安装哪些库(我使用的是 MingW + Codeblocks)。