Linux popen和系统不能在多线程中使用?

时间:2018-08-26 05:53:08

标签: c linux multithreading system popen

我想在多线程中使用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");

0 个答案:

没有答案