Я хочу использовать popen или систему в многопоточности для выполнения моей программы, передачи параметра в программу и получения ее вывода. Но я обнаружил, что использую многопоточность для вызова того же времени (очень длинного), что и однопоточный вызов. Есть ли хороший способ?
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, я не могу долго стоять, у вас есть хорошие способы? спасибо:)
FILE *fp = popen(cmd, "r");