我想在多线程中使用popen或system执行我的程序,将参数传递给程序并获取其输出。但是我发现我使用多线程与单线程调用同时(很长时间)进行调用。有什么好办法吗?
void * _multi_threaded_call(void *arg){
char *param = (char *)arg;
call_my_program(param);
return NULL;
}
//buff is the parameter that my
if(pthread_create(&tid[thread_id], NULL, &_multi_threaded_call, &buff) == -1){
printf("fail to create pthread");
exit(1);
}
if(pthread_join(tid[thread_id] , NULL) == -1){
printf("fail to join pthread");
exit(1);
}
最后,我使用popen,我不能忍受很长时间,您有什么好方法吗? thx:)
FILE *fp = popen(cmd, "r");