C中的Pthreads。简单示例不起作用

时间:2014-01-05 18:07:09

标签: c pthreads dev-c++

我正在使用Pthreads开始编程。我使用Dev-C ++并将库链接到项目中。简单的程序编译,但它不起作用。下面我附上了代码。有谁知道这是什么问题?

#include <stdio.h>
#include <stdlib.h>
#include <pthread.h>
#include <windows.h>


void *func (void* x){
    printf("(%s)",'Hi. It's thread number 1');
    return 1;
}

int main() {
    pthread_t thread;
    int x=1;

    pthread_create(&thread, NULL, func, &x);
    pthread_join(thread,1);

    return 0;
}

2 个答案:

答案 0 :(得分:3)

这一行

printf("(%s)",'Hi. It's thread number 1');

应该是

printf("(%s)", "Hi. It's thread number 1");

字符串文字用引号"括起来。


同样将1传递给pthread_join()作为2 nd 参数,大多数人都会调用未定义的行为,因为它告诉函数将类型void *的值写入地址1,预计不会指向有效的内存。

答案 1 :(得分:0)

编译器是不是抱怨那个巨大的多字符字符常量? (它应该抱怨两次;一次是关于一个巨大的多字符字符常量,一次是当printf期望一个字符串时将字符常量传递给printf。)在第8行尝试在字符串周围加双引号。