子进程模块没有超时功能,因此主进程可以永远运行。我想介绍一下,如果子进程在X秒内没有退出,则主进程发生超时错误。 / p>
在下面的代码中,我正在从另一个程序中运行带有参数my_script
的{{1}}。现在,如果在运行my_arg
my_script
时发生了某种无限循环或某件事,那么父进程将永远运行。
time_out
那么我该如何介绍Time out。我可以在int my_func(){
char ch;
FILE *fpipe;
FILE *copy_fp;
FILE *tmp;
char *command=(char *)"/usr/bin/my_script my_arg";
copy_fp=fopen("/tmp/output_file_path","w");
fpipe=(FILE *)popen(command,"r");
if(fpipe){
while( ( ch = fgetc(fpipe) ) != EOF ){
fputc(ch, copy_fp);}
}
else{
if(copy_fp){
fprintf(copy_fp,"Sorry there was an error opening the file");
}
}
pclose(fpipe);
fclose(copy_fp);
return 0;
}
中使用select
命令来运行另一个脚本,因为select具有unistd.h
功能。
还是只能将timeout
与timeout
一起使用?