msgrcv error : Identifier removed(ERMID)错误解决;
来源:互联网 发布:影楼后期软件 编辑:程序博客网 时间:2024/05/22 13:52
今天在学习进程间通信中的消息队列的时候,自己的一个例子经常出现msgrcv error : Identifier removed这个错误,网上找了,发现好多人都与到过这问题,但是并没又给初一个明确的解决办法;后来终于给找出来了,原来是类型的问题:
#include <unistd.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <errno.h>
#include <sys/msg.h>
#define MAX 1024
struct mymsg{
long int msgtype;
char buf[MAX];
};
int main()
{
int msg_type = 1;
int msgid = -1;
struct mymsg my_msg;
long int msgtype = 1;
// my_msg.msgtype = 1;
if((msgid = msgget((key_t)1234,0666|IPC_CREAT)) < 0){
fprintf(stderr,"msgget error:%s\n",strerror(errno));
return -1;
}else if(msgid == 0){
printf("create msg%d success\n",msgid);
}
while(1){
int size =0;
if((size = msgrcv(msgid,(void *)&my_msg , MAX, 1 ,0)) < 0){ //注意,这里的我类型是直接填1
fprintf(stderr,"msgrcv error :%s\n",strerror(errno));
return -1;
}
my_msg.buf[size] = '\0';
printf("receive from msgqueue :%s\n",my_msg.buf);
}
if(msgctl(msgid,IPC_RMID,0) < 0){
fprintf(stderr,"msgctnl error :%s\n",strerror(errno));
return -1;
}
}
这样老是出现msgrcv error : Identifier removed
把1改成(long int)1,强制转换成长整型1就行了
#include <unistd.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <errno.h>
#include <sys/msg.h>
#define MAX 1024
struct mymsg{
long int msgtype;
char buf[MAX];
};
int main()
{
int msg_type = 1;
int msgid = -1;
struct mymsg my_msg;
long int msgtype = 1;
// my_msg.msgtype = 1;
if((msgid = msgget((key_t)1234,0666|IPC_CREAT)) < 0){
fprintf(stderr,"msgget error:%s\n",strerror(errno));
return -1;
}else if(msgid == 0){
printf("create msg%d success\n",msgid);
}
while(1){
int size =0;
if((size = msgrcv(msgid,(void *)&my_msg , MAX, 1 ,0)) < 0){ //注意,这里的我类型是直接填1
fprintf(stderr,"msgrcv error :%s\n",strerror(errno));
return -1;
}
my_msg.buf[size] = '\0';
printf("receive from msgqueue :%s\n",my_msg.buf);
}
if(msgctl(msgid,IPC_RMID,0) < 0){
fprintf(stderr,"msgctnl error :%s\n",strerror(errno));
return -1;
}
}
这样老是出现msgrcv error : Identifier removed
把1改成(long int)1,强制转换成长整型1就行了
0
上一篇:boa服务移植到安卓手机
下一篇:Linux进程间通信——消息队列:
相关热门文章
- linux 常见服务端口
- xmanager 2.0 for linux配置
- 【ROOTFS搭建】busybox的httpd...
- openwrt中luci学习笔记
- 什么是shell
- linux dhcp peizhi roc
- 关于Unix文件的软链接
- 求教这个命令什么意思,我是新...
- sed -e "/grep/d" 是什么意思...
- 谁能够帮我解决LINUX 2.6 10...
给主人留下些什么吧!~~
评论热议
0 0
- msgrcv error : Identifier removed(ERMID)错误解决;
- 解决VC提示 syntax error : identifier 'LONG_PTR'错误的方法
- 解决VC提示 syntax error : identifier 'LONG_PTR'错误的方法
- 'IplImage' : undeclared identifier错误解决
- vc++ classwizard "Parsing error:Number or identifier expected.Input line ....."错误解决
- 使用sndPlaySound时的错误syntax error : missing ';' before identifier 'MMVERSION'的解决
- namespace妙用 及解决VC6.0 编译 弹出气球 出现错误 error C2065: 'NIIF_INFO' : undeclared identifier
- 编译错误:syntax error : identifier '__RPC__in'
- VC++错误:error C2065: 'SHCreateDirectoryEx' : undeclared identifier
- 编译错误:syntax error : identifier '__RPC__in'
- error C2065: '_beginthread' : undeclared identifier错误处理
- 解决error C2065: 'mwSize' : undeclared identifier
- expected identifier before ‘(’ token错误解决方式
- error:VC编译错误:error C2065: '_beginthreadex' : undeclared identifier
- 最终解决error C2146: syntax error : missing ';' before identifier
- qvfb: Semop lock failure Identifier removed
- hbase hbck报错identifier removed
- Error filterStart错误解决
- ssh框架整合实例
- linux网络编程——套接字(socket)入门
- samba移植到android流程
- boa服务移植到安卓手机
- GitHub 上 iOS 开源库 Top 100
- msgrcv error : Identifier removed(ERMID)错误解决;
- 字符编码常识及问题解析
- Linux进程间通信——消息队列:
- 【格灵深瞳】电话面试
- linux内核——进程管理
- (原创)socket学习实验(一)——利用C 语言socket抓取一个网页内容
- Linux 同步方法剖析--内核原子,自旋锁和互斥锁
- adb shell中设置android系统内部环境变量!
- 面对自己:如何让自己成为真正的程序员
原创粉丝点击
热门IT博客
热门问题
老师的惩罚
人脸识别
我在镇武司摸鱼那些年
重生之率土为王
我在大康的咸鱼生活
盘龙之生命进化
天生仙种
凡人之先天五行
春回大明朝
姑娘不必设防,我是瞎子
浪史奇观
农科奇观
奇观造句
蔚为奇观
文明6奇观
什么的奇观
大自然奇观
天下奇观的意思
世界七大奇观
中国自然奇观
奇观的近义词
长城三大奇观
中国世界奇观
天下奇观是什么意思
奇观怎么造句
浪史奇观 风月轩又玄子
天下奇观的观是什么意思
世界七大奇观是哪七个
天下奇观的图片
浙江惊现飞鱼奇观
梦见天上出现奇观
青海湖现开湖奇观
世界七大自然奇观
梦到天上出现奇观意境
世界上的自然奇观
2019全部天文奇观时间表
广西现龙吸水奇观
世界七大自然界奇观
河流现泾渭分明奇观
梦见星空出现美丽奇观
奇诺
奇诺之旅
都市妖奇谈
诡异奇谈
开封奇谈
研香奇谈
奇谈怪论
妖怪奇谈
赶尸奇谈
海外奇谈
奇谈