我正在尝试将传入主线程的任何参数传递给我使用“pthread_create”创建的“子线程”。
void *threadMainLoop(void *arg){
char *arguments = (char*)arg;
printf("arg 1 - %s\n", arguments[1]);
}
int main(int argc, char *argv[]){
printf("Start of program execution\n");
rc = pthread_create(&outboundThread, NULL, threadMainLoop, (void *) argv);
printf("Thread create rc: %i, %d\n", rc, outboundThread);
if(rc != 0){
printf("Thread creation failed\n");
exit(1);
}
pthread_join(outboundThread, NULL);
return 0;
}
上面的代码不起作用,你能告诉我如何在线程中访问 ARGV 数组,如“argv[0]”等吗?
最佳答案
main
中的 argv
是一个 char**
,而不是 char*
,所以就是这样您应该将其转换回 threadMainLoop
。
关于c - 如何将 char* argv[] 传递给 pthread_create?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5850226/