我正在尝试将传递给主线程的任何参数传递给我使用“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]"?
char **
而不是char *
。-1 因为我没在线上,这次算了,只要不成为常规规则就行;-) - Steve Jessop