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

Submitted by: Murtaza
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]#
Submitted by: Murtaza

Read Online Linux Debugging Job Interview Questions And Answers