-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy paththread.c
89 lines (49 loc) · 1.45 KB
/
thread.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
#include<pthread.h>
#include<stdio.h>
#include<string.h>
void * thread_handler (void *);
int main() {
pthread_t tid[5];
int ret[5];
int index=0;
char a[5][10]={"thread 1", "thread 2", "thread 3", "thread 4" , "thread 5"};
int i[10]={10,11,12,13,14,15,16,17,18,19};
int *ptr;
ptr=i;
printf("i %x %p \n",i,i);
printf("*i %x %p \n", *i, *i);
printf("&i %x %p \n", &i, &i);
printf("&i+1 %x %p \n", &i+1, &i+1);
//printf("&(i+1) %x %p \n", &(i=i+1), &(i=i+1)); This will not work lvalue
printf(" *(i+1) %x %p \n", *(i+1), *(i+1));
printf("i+1 %x %p \n", i+1, i+1);
printf("*ptr %x %p \n",*ptr, *ptr);
printf("*(ptr+1) %x %p \n",*(ptr+1), *(ptr+1));
printf("ptr %x %p \n",ptr,ptr);
ptr++;
printf("ptr++ %x %p \n",ptr,ptr);
memset(ret,0,5);
while (index<5) {
ret[index]=pthread_create(&tid[index],NULL,thread_handler,(void *) a[index]);
index++;
}
pthread_join(tid[0],NULL);
pthread_join(tid[1],NULL);
pthread_join(tid[2],NULL);
pthread_join(tid[3],NULL);
pthread_join(tid[4],NULL);
printf("Multi dimensional array \n");
printf("a is %x %p \n",a,a);
printf("*a is %x %p \n",*a,*a);
printf("**a is %x %p \n", **a, **a);
printf("&a is %x %p \n",&a,&a);
printf("a+1 is %x %p \n",a+1,a+1);
printf("&a+1 is %x %p \n",&a+1,&a+1);
printf("*a[2] is %x %p \n",*a[2],*a[2]);
printf("&a[2] is %x %p \n",&a[2],&a[2]);
}
void * thread_handler (void * arg) {
char *ptr;
ptr=(char*)(arg);
printf("%s\n",ptr);
}