当前位置:  技术问答>linux和unix

新手_段错误,指针的问题,没明白!

    来源: 互联网  发布时间:2017-01-23

    本文导语:  本帖最后由 yuncha299792458 于 2011-12-08 00:47:26 编辑   1 #include    2 #include    3 #include    4 #include    5 #include    6 #include    7 #include    8 #include    9   10 typedef struct{  11         char name[4];  12         i...

本帖最后由 yuncha299792458 于 2011-12-08 00:47:26 编辑
  1 #include 
  2 #include 
  3 #include 
  4 #include 
  5 #include 
  6 #include 
  7 #include 
  8 #include 
  9 
 10 typedef struct{
 11         char name[4];
 12         int age;
 13 }people;
 14 
 15 int main(int argc,char *argv[])
 16 {
 17         int shm_id;
 18         key_t key;
 19         people *p_map;
 20         time_t seed = time(NULL);
 21         srand((int)seed);
 22         key = rand();
 23 
 24         shm_id=shmget(key,4096,IPC_CREAT);
 25         p_map=(people*)shmat(shm_id,NULL,0);
 26         (*p_map).age=20;
 27         (*(p_map+1)).age=21;
 28         return 0;
 29 }
 30 
 31 



第26、27行“段错误”,为什么不行啊???

|
shm_id=shmget(key,4096,IPC_CREAT);
这里有问题,你没有加权限,所以shmat映射的时候失败了,改成
shm_id=shmget(key,4096,IPC_CREAT|0666);就行了

|
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 

typedef struct{
        char name[4];
         int age;
}people;

int main(int argc,char *argv[])
{
       int shm_id;
       key_t key;
       people *p_map;
       time_t seed = time(NULL);
       srand((int)seed);
       key = rand();

       shm_id=shmget(key,4096,IPC_CREAT);
       p_map=(people*)shmat(shm_id,NULL,0);
       (*p_map).age=20;
       (*(p_map+1)).age=21;
       (*(p_map+2)).age=22;
       
       printf("%dn", (p_map)->age);
       printf("%dn", (p_map+1)->age);
       printf("%dn", (p_map+2)->age);

       return 0;
}

输出:

20
21
22

程序运行正常,没段错误;

|
同意koutatu,我是在root权限下运行的

|


++

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 新手求助!编译libmad包时的错误!
  • 新手提问,应用程序运行:Permission denied错误
  • 新手问题:运行时报的这个错误是怎么回事?
  • 新手的BASH代码错误,求帮忙解决
  • 新手问题,看看这是什么错误?很简单的。
  • 我是新手,这个问题我搜半天了,可是显示页面错误,最简单的。
  • EJB新手上路--运行j2ee -verbose 的错误(80分送上)
  • 请看这个错误什么意思?老是碰到(我是新手,没有多的分数送给大家,不过还请多多帮忙)
  • 我的tomcat安装后,设置完文件地址.出现500错误.怎么回事?我是新手啊:O
  • 现在我在unix下写个c程序。我是新手,遇到了个错误,是个简单的问题,高人指点!!
  • 我是JAVA新手。有一个关于错误处理的问题。请高手们帮着解决
  • (新手)请教这个线程的错误在哪?
  • 新手安装linux出现错误,望高手指教
  • 新手,求解编译错误
  • 新手请教一个linux下互斥量访问输出错误的问题
  • 新手,程序运行错误,不知道是什么原因,大家能给我指点一下吗????
  • 我是新手,遇见个问题,不知道是什么错误?是不是配置文件写错了
  • C#新手常犯的错误汇总
  • python新手经常遇到的17个错误分析
  • jsp新手有关内部错误问题,请高手指教,急急急~~~~
  • 新手如何加入开源项目 有什么好的c++,java 开源适合新手 请指点!
  • JDBC的问题,新手高手都来看看吧,说不定能帮帮我这个新手呢,谢谢!
  • 想找共同学习Linux的新手,一起学习,共同成长
  • 新手关于驱动开发的疑问
  • 新手有关linux的问题!
  • 新手急求~~~~~~~~~~~~~~~~~~~
  • 新手学习该用哪个版本
  • 面向新手的终端辅助工具 Clicompanion
  • 我是个新手,请各位老兄给介绍基本好书?
  • 新手请教啦~~能不能帮忙推荐几本书
  • 我是新手


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3