c - pthread_create 中的多个参数

标签 c linux pthreads

根据pthread_create 手册页,该函数的参数是:

int pthread_create(pthread_t *thread, const pthread_attr_t *attr,
                      void *(*start_routine) (void *), void *arg);

关于 void *arg,我只是想知道我是否可以向它传递多个参数,因为我编写的函数需要 2 个参数。

最佳答案

使用您的void*,您可以传递您选择的结构:

struct my_args {
  int arg1;
  double arg2;
};

这实际上允许您传入任意参数。您的线程启动例程除了解压缩那些调用真正的线程启动例程(它本身可能来自该结构)之外什么都不做。

关于c - pthread_create 中的多个参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15259714/

相关文章:

c - 如何使用按位运算将 1 加到 unsigned int 中的 float ?

c - 如何按升序创建链表

c - 指向结构的函数指针在每个结构调用中使用一次

linux - Bash:检查脚本是否已经在此计算机上运行

linux - 从文件中打印一行

c - C编程中的pthread内存泄漏

从另一个目录中的源文件调用方法

linux - 如何部署使用英特尔 IPP 的应用程序?

c++ - 错误 : argument of type ‘void* (Thread::)(void*)’ does not match ‘void* (*)(void*)’

c - 线程安全队列的问题表现为 IDE 控制台中没有输出