gpt4 book ai didi

c - 如何将 char* argv[] 传递给 pthread_create?

转载 作者:太空宇宙 更新时间:2023-11-04 00:54:59 24 4
gpt4 key购买 nike

我正在尝试将传入主线程的任何参数传递给我使用“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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com