- 论坛徽章:
- 0
|
unix环境高级编程第11章中说“进程的所有信息对该进程所有的线程都是共享的,包括可执行的程序文本、程序的全局内存和堆内存、栈、以及文件描述符”
栈中不是保存局部变量吗?局部变量其他的线程也能访问吗?我记得做过实验是不能访问的。
#include <stdio.h>
#include <pthread.h>
void* thread(void)
{
int i,sum=0;
for(i=1;i<=10;i++)
{
sum=sum+i;
sleep(1);
}
printf("The sum is %d\n",sum);
}
int main(void)
{
pthread_t id;
int i,ret;
char buf[80];
ret=pthread_create(&id,NULL,thread,NULL);
if(ret!=0)
{
printf ("Create pthread error!\n");
exit (1);
}
while(1)
{
printf("please input a string\n");
scanf("%s",buf);
printf("This string is %s\n",buf);
}
pthread_join(id,NULL);
return (0);
} |
线程应该不能访问main局部变量吧?
怎么解释呢? |
|