计科-嵌入式Linux高级编程实验-.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
计科-嵌入式Linux高级编程实验-

注意 前10个实验的名称为 1 文件的基本操作 2 文件的定位与控制 3 目录文件的操作 4 进程和进程的同步 5 守护进程与管道 6 消息队列与共享内存IPC 7 线程与线程互斥 8 线程同步中的信号量 9 简单的网络通信 10 IP层通信 实验6 消息队列与共享内存IPC 消息队列 用消息队列来进行通信,本题有两个程序t1.c和t2.c , gcc t1.c –o t1 ./t1 打开另外的窗口,执行 gcc t2.c –o t2 ./t2 输入Helloworld! 在第三个窗口中输入ipcs 观察消息队列的情况 /*消息队列 产生消息队列,并且接受消息 t1.c*/ #include sys/msg.h #include sys/types.h #include sys/ipc.h #include stdio.h #include string.h #include sys/errno.h #include stdlib.h struct msgbuf { long mtype;// 类型 char ctext[100];//消息数据 }; int main() { int ret; struct msgbuf buf; //消息缓冲 int id=msgget(0x1030,0666|IPC_CREAT); if(id0){printf(failed to open msg\n);exit(-1);}; while(1) { memset(buf,0,sizeof(buf)); //接受消息 while((ret=msgrcv(id,buf,sizeof(buf.ctext),0,0))0) { if(errno==EINTR)continue; return; } printf(Msg type is %d Text is %s\n,buf.mtype,buf.ctext); } } /*t2.c 用来发送消息的程序*/ #include sys/msg.h #include sys/types.h #include sys/ipc.h #include stdio.h #include string.h #include sys/errno.h #include stdlib.h struct msgbuf { long mtype;// 类型 char ctext[100];//消息数据 }; int main() { struct msgbuf buf; //消息缓冲 int id=msgget(0x1030,0666|IPC_CREAT); if(id0){printf(failed to open msg\n);exit(-1);}; while(1) { memset(buf,0,sizeof(buf)); scanf(%s,buf.ctext); // if(strcmp(buf.ctext,exit)==1){printf(exit!\n);return 0;} buf.mtype=100; //发消息 while((msgsnd(id,buf,strlen(buf.ctext),0))0) { if(errno==EINTR)continue; return; } } 共享内存 共享内存 发送端程序程序 #include stdio.h #include sys/shm.h #include sys/types.h #include sys/ipc.h #include string.h #include sys/stat.h int main() { int shmid; char *pmat=NULL; shmid=shmget(0x5555,1024,0666|IPC_CREAT); if(shmid==-1){printf(shmget failed!\n);} pmat=(char*)shmat(shmid,0,0); if(pmat==0)printf(shat failed\n); char buf[1024]; printf(please input data\n

文档评论(0)

panguoxiang + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档