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

我的ubuntu 11.04 是不是不支持共享内存?

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

    本文导语:  今天做共享内存实验,编译不通过,检查无果,求大侠解救。谢谢!! 源程序: #include  #include  #include  #include  #include "shm_com.h" #include  #include  #include  //#define  BUF 1024; int main() {   int running=1;   void *shared_m...

今天做共享内存实验,编译不通过,检查无果,求大侠解救。谢谢!!
源程序:
#include 
#include 
#include 
#include 
#include "shm_com.h"
#include 

#include 
#include 
//#define  BUF 1024;

int main()
{
  int running=1;
  void *shared_memory=(void *)0;//??
  struct shared_use_st *shared_stuff;
  int shmid;
  char buffer[BUFSIZ];//这个BUFSIZ 是多少???注:BUFSIZ宏在stdio.h中定义
 /*创建共享内存*/
 shmid=shmget((key_t)1234,sizeof(struct shared_use_st),0666|IPC_CREAT);
 if(shmid==-1)
  {
    fprintf(stderr,"shmget failed n");
    exit(EXIT_FAILURE);
   }
  /*映射共享内存*/
 shared_memory=shmat(shmid,(void *)0,0);
 if(shared_memory==(void *)-1)
   {
      fprintf(stderr,"shmat failed n");
      exit(EXIT_FAILURE);
   }
  printf("memory attached at %X n",(int)shared_memory);
  /*让结构体指针指向这块内存*/
 shared_stuff=(struct shared_use_st *)shared_memory;
 /*控制读写顺序*/
 shared_stuff->written_by_you=0;
 /*循环从共享内存中读数据,直到读到“end"为止*/
 while(running)
{  
   if(shared_stuff->written_by_you==1)
    {
       
        sleep(1);//??读进程读了之后再写
        printf("waiting for client...n");
       
     } 
  printf("enter some text:");
  fgets(buffer,BUFSIZ,stdin);
  strncpy(shared_stuff->some_text,buffer,TEXT_SZ);
  shared_stuff->written_by_you=0;
        if(strncmp(shared_stuff->some_text,"end",3)==0)  
         {
           running=0;//结束循环
           }
}
 
  /*删除共享内存*/
  if(shmdt(shared_memory)==-1)
   {
     fprintf(stderr,"shmdt failed n");
     exit(EXIT_FAILURE);
   }
   exit(EXIT_SUCCESS);
}
编译:
qust@qust-K42JZ:~/test$ gcc shm2.c -o shm2
In file included from /usr/include/i386-linux-gnu/sys/ipc.h:29:0,
                 from /usr/include/i386-linux-gnu/sys/shm.h:28,
                 from shm2.c:6:
/usr/include/i386-linux-gnu/bits/ipctypes.h:31:9: 错误: expected ‘;’, identifier or ‘(’ before ‘unsigned’
这难道是系统里地文件出错了??/?我没动里面的内容啊!

|
9成的可能是#include "shm_com.h"这个文件有问题。查查。

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












  • 相关文章推荐
  • Ubuntu 12.04长期支持版和最新版Ubuntu 13.10下载
  • 请问 Ubuntu 7.10 server 是否支持自动待机功能
  • ubuntu不支持__attribute__((packed))怎么办
  • 原来在ubuntu装个了个eclipse,可以正常启动,后来又下了个支持php的eclipse...发现php的eclipse无法启动
  • Ubuntu查看系统信息命令介绍
  • vmware里装了Ubuntu后Ubuntu.vmdk文件大小和Ubuntu系统大小区别?
  • Docker官方镜像将会使用Alpine Linux替换Ubuntu
  • win7与Ubuntu双系统卸载ubuntu
  • Ubuntu查看硬盘,分区相关命令介绍
  • 装ubuntu的时候选安装ubuntu与win7共存与选其他选项
  • Ubuntu系统安装及升级命令
  • winxp+ubuntu32+ubuntu64是否可以这样装系统?
  • Ubuntu Precise 12.04 (LTS) (64-bit)下面安装docker
  • ubuntu能安装rpm包吗&&ubuntu的intel 945显卡驱动
  • Ubuntu Raring 13.04 和 Saucy 13.10 (64 bit)下面安装docker
  • 在win7下装ubuntu成功后进不去ubuntu!!??
  • Ubuntu Trusty 14.04 (LTS) 下面安装docker及依赖关系检查
  • 原来已安装好ubuntu,因系统崩溃,重装WINXP系统,如何再次登录ubuntu系统?
  • Ubuntu Vivid 15.04 下面安装docker的详细步骤
  • ubuntu10.10 和 ubuntu 10.04.1
  • ubuntu系统中软件安装、卸载以及查询是否已经安装某个软件包的方法
  • Ubuntu 中的 ubuntu one 算不算的上云?
  • linux/Centos/ubuntu下如何使用umask命令修改新建文件时的默认权限
  • 安装ubuntu11.04时,过了ubuntu的logo花屏,怎么解决
  • Ubuntu程序开机自动启动设置(服务和自动运行配置文件)的几种方法
  • 我想根据ubuntu官网上介绍的方法安装ubuntu,是否应该先分一块硬盘空间?


  • 站内导航:


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

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

    浙ICP备11055608号-3