QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1220|回复: 2

msgsnd的EFAULT错误怎么处理?

[复制链接]
发表于 2005-1-20 09:11:20 | 显示全部楼层 |阅读模式
调用msgsnd时发生error,errno=14,EFAULT.传给他的消息结构缓冲区
struct msgbuf{long type;char data[BUFSIZ];}有内容,单独打印出来都可以,怎么会是地址错误呢?谢谢帮忙了。
 楼主| 发表于 2005-1-20 09:22:17 | 显示全部楼层
struct msgbuf{long type;char data[BUFSIZ];};
struct msgbuf *p;
char buf[BUFSIZ];int msgid;
msgid=msgget((key_t)1234,0666|IPC_CREAT);
fgets(buf,BUFSIZ,stdin);
p->type=1;
strcpy(p->data,buf);
msgsnd(msgid,(void*)p,BUFSIZ,0);
回复

使用道具 举报

 楼主| 发表于 2005-1-20 15:27:36 | 显示全部楼层
不能用指针,缓冲区改成不是指针就能用了。惭愧阿
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-6 17:19 , Processed in 0.044021 second(s), 15 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表