2009年3月9日 星期一

多線程程式設計 - pthread_create 傳遞參數的用法

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

struct test
{
int no;
char name[80];
};

void *pfunc(void *data)
{
// 後面的括號是把void型態的指標轉成strut test的指標
// 而前面的*號是後面指標指到的位址提取出來
struct test tt = * (struct test*) data;
printf("%d\n",tt.no);
printf("%s\n",tt.name);
}

int main()
{
struct test itest;
pthread_t th;
itest.no = 100;
strcpy(itest.name,"Hello");

// 產生一個thread,其去執行pfunc這一個函數
pthread_create(&th,NULL,pfunc,(void*) &itest);
return 0;
}

參考資料:
pthread_create 傳遞參數的用法

沒有留言: