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

请教一个msg发送程序的问题

    来源: 互联网  发布时间:2016-11-16

    本文导语:   我写了一个msg发送测试代码msg2.c,代码如下.编译连接完成后运行时,提示消息发送失败,错误代码是22,我查了一下, 22表示参数有误。请大家帮我看一下,错误出在哪里?我在xp上装的vmare,vmare上装的ubuntu。 #include  #inclu...


 我写了一个msg发送测试代码msg2.c,代码如下.编译连接完成后运行时,提示消息发送失败,错误代码是22,我查了一下,
22表示参数有误。请大家帮我看一下,错误出在哪里?我在xp上装的vmare,vmare上装的ubuntu。

#include 
#include 
#include 
#include 
#include 
#include 

#define MAX_TEXT (512)
struct my_msg_st
{
long int my_msg_type;
char some_text[MAX_TEXT];
};

int main(void)
{
int msg_id=0;
struct my_msg_st send_data;
int send_byte_num=0;

msg_id = msgget((key_t)1234,0666|IPC_CREAT);
if(-1==msg_id)
{
fprintf(stderr,"create msg queue error:%d",errno);
exit(EXIT_FAILURE);
}

memset(&send_data,0,sizeof(send_data));

/*construct msg*/
          send_data.my_msg_type=0;
          send_data.my_some_text[0]='h';
          send_data.my_some_text[1]='e';
          send_data.my_some_text[2]=0;

/*send msg*/
send_byte_num = msgsnd(msg_id,(void*)&send_data,MAX_TEXT ,0);
if(-1 == send_byte_num)
{
fprintf(stderr,"msg  sending error:%d",errno); /*这里返回错误代码为22*/
exit(EXIT_FAILURE);
}

   //... other code.

exit(SUCCESS);
}

|
//fprintf(stderr,"msg sending error:%d",errno);改为
fprintf(stderr,"msg sending failedn");  

|
错误代码贴出来啊。
(void*)&send_data貌似有点错误,需要的只是一个地址就行了,可以改为&send_data试试。后面的大小可以改成sizeof(send_data)-sizeof(long),再试试。

|
send_data.my_some_text[2]=0;

这个是要表示在字符数组上加上结束标志吗?是的话应该是
send_data.my_some_text[2]=''才是

    
 
 

您可能感兴趣的文章:

  • 请教 spandsp 发送多页传真的问题
  • 请教一个局域网内邮件发送的问题
  • 请教发送ARP的问题
  • 如何通过其他网站发送短消息(比如新浪)?JSP页面提交,高分请教!!
  • 请教发送email的问题
  • 高分请教,电子邮件的发送时间问题
  • 请教 javamail 在 linux 上发送邮件
  • 高分请教:为什么配置好的sendmail不支持分割发送MAIL???
  • 请教,socket中recv不能一次完全接收send发送的字节数?
  • 请教,linux内核协议栈中,从内核往驱动发送的报文(注意是下行,不是上行),如何从sk_buff判断是组播数据报文还是组播协议报文????
  • ¥¥:-)给分请教:linux下的邮件发送日志是什么文件??我是用php的mail()函数的。急盼!各位仁兄请帮忙!!
  • 真正请教:Serializable接口有哪些主要作用,为什么它与Socket类可实现邮件发送?在概念或原理上是如何实现的呢?
  • 向高手请教(至少200分)一个局域网内发送以太帧的问题
  • 高分请教:可以在局网中跨代理发送email是什么意思?
  • 还是不懂,驱动到底如何能同步的发送信号给用户程序,请教高人,谢谢了
  • 请教信号发送程序遇到的一个问题
  • 高手请教socket 发送信息被合并
  • 请教关于Kill向子进程发送信号的问题,子进程如何相应信号,为什么子进程接受不到。
  • linux新手,请教各位大人串口通讯问题(发送十六进制正常,接受数据错误)附源码
  • 在linux下面怎么安程序啊?我刚裝了一个 linux,下了一个迅雷安装程序,可是不知道怎么安装啊?真心请教。
  • 菜鸟请教,应用程序如何判断驱动程序已经挂载成功
  • 请教!Linux系统C开发的程序,为什么我的程序运行时内存持续增长,程序退出后内存也没有降低?
  • 请教高手,如何在java中调用其他应用程序(该程序主要进行数据库操作)
  • 请教一下在驱动里怎么调用应用程序
  • 请教一个古老的DOS程序——IMG的用法
  • 请教各位大大 怎样编写LINUX触摸屏的驱动程序?
  • 请教!关于linux字符驱动程序
  • 请教,在jcreator下面如何使程序单步执行?多谢!
  • 请教:用jbuilder7编写程序时,光标显示不正确,请问怎样解决?
  • 请教一下程序员考试的情况
  • 请教高手关于c程序core问题
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 请教,请教,这个问题是为什么????
  • 请教本地硬盘安装问题请教本地硬盘安装问题
  • ■请教■请教redhat最基本的问题!
  • 请教一个 shell 问题,我用下面这个 shell 语句总是失败,请教
  • 高分请教,各位大侠,请教一个问题,理论高手请进??谢谢
  • 请教Linux下pgadmin3-1.0.2的编译和安装!!高分请教!
  • 各位大虾,请教装了REDHAT9操作系统后,启动时无法引导到LINUX,请教该如何解决啊
  • 请教,请教,,,一定要看!!一定要看!!
  • 请教高手,小弟打印width=1500,height=600(A3纸)的Applet,在预览中是该区域是黑的,打印出来也是黑的,请教高手解决一下
  • :请教高手,小弟打印width=1500,height=600(A3纸)的Applet,在预览中是该区域是黑的,打印出来也是黑的,请教高手解决一下
  • 请教象我这样的硬盘应如何安装Linux,我昨天试装了,但有问题。(老问题了,也看了前面的帖子,但还是来请教,请多指教)
  • 请教这种循环的执行过程
  • 请教两个redhat9问题
  • 请教如何在指定目录下查找包含指定文字的文件
  • 请教局域网中如何通过ip地址得到主机名
  • 请教kdevelop的问题
  • 请教linux 下的adsl拨号问题.
  • 请教,如何用虚拟订机安装liux
  • 【请教】LINUX 下SNMP的MIB开发
  • 请教一个opengl的问题


  • 站内导航:


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

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

    docker中文入门学习手册 iis7站长之家