⟩ What is the output of this program no 2? #include<stdio.h> #include<pthread.h> void *fun_t(void *arg); void *fun_t(void *arg) { printf("%dn",a); pthread_exit("Bye"); } int main() { int a; pthread_t pt; void *res_t; a = 10; if(pthread_create(&pt,NULL,fun_t,NULL) != 0) perror("pthread_create"); if(pthread_join(pt,&res_t) != 0) perror("pthread_join"); return 0; } a) 10 b) 0 c) -1 d) none of the mentioned
d) none of the mentioned
Explanation:
Each thread has its own stack so local variables are not shared among thread. Hence this program will give an error.
Output:
[root@localhost google]# gcc -o san san.c -lpthread
san.c: In function 'fun_t':
san.c:7:16: error: 'a' undeclared (first use in this function)
san.c:7:16: note: each undeclared identifier is reported only once for each function it appears in
[root@localhost google]#