共享内存的问题.急得要自杀

我有个窗口,里面有个按扭.打开窗口的同时创建了一个共乡内存shm,就是在win_setup中,建立的.然后我在按扭的徽调函数中,打开这个共乡内存,然后处理数据.一切都对.但是点完这个按扭以后,窗口中的好多控件都点不了,处于好象死了的状态.为什么?
fd=shm_open("/datazj",O_RDONLY,0666);
fstat(fd,&stat);
ptr=mmap(NULL,stat.st_size,PROT_READ,MAP_SHARED,fd,0);
close(fd);
这个是我回调函数的读共乡内存部分.
如果我注释掉这部分,问题(处于好象死了的状态)好像就没了.应该就是共享内存的问题.请问老大们到底怎么弄???呜呜呜呜
拜托,急的快自杀了

我已经知道错在哪里了!!谢谢大家。