c语言 pthread_create 当中的start_routine方法如何接收参数
时间: 2023-09-10 11:05:38 浏览: 149
获取其他进程启动参数方法
3星 · 编辑精心推荐
在C语言中,pthread_create()函数的最后一个参数可以用来传递给线程启动函数(即start_routine函数)的参数。这个参数可以是一个指向任何类型的指针,例如,一个指向结构体的指针或者一个整型值的指针。下面是一个示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <pthread.h>
void *start_routine(void *arg) {
int *p = (int *)arg;
int value = *p;
printf("The argument passed to the thread is: %d\n", value);
pthread_exit(NULL);
}
int main() {
pthread_t tid;
int arg = 123;
pthread_create(&tid, NULL, start_routine, &arg);
pthread_join(tid, NULL);
return 0;
}
```
在这个示例中,我们创建一个整型变量arg并将其传递给start_routine函数的最后一个参数。在start_routine函数内部,我们将这个指针强制转换成一个整型指针,并通过解引用操作获取到arg的值。最后,我们打印出这个值。注意,这里必须使用强制类型转换将void指针转换成int指针,否则编译器会报错。
阅读全文