/*发送消息,单项的传递消息*/

原创 2007年10月10日 21:09:00

#include<stdlib.h>
#include<stdio.h>
#include<unistd.h>
#include<string.h>
#include<sys/types.h>
#include<sys/ipc.h>
#include<sys/msg.h>                   //头文件信息
#define MAX_TEXT 512                  //定义的宏MAX_TEXT的值为512个字节
                                      // 系统定义的BUFSIZ的值为8192

struct my_msg_st                      //定义一个结构体名为my_msg_st
{
    int my_msg_type;                  //结构体成员,定义一个名为my_msg_type为整型数据
    char msg_text[MAX_TEXT];          //结构本成员,定义一个字符数组类型my_text[512]
};

int main(int argc, char *argv[])      //主函数,包含两个参数
{
    int running=1;                    //定义running为整型数据,给running赋初值为1
    struct my_msg_st some_data;       //定义了一个结构体变量名为some_data
    int msgid;                        //定义msgid为整型数据
    char buffer[BUFSIZ];              //定义一个字符数组buffer[8192]

    /*下面:如果可要创建一个Key值为12345,且户权限为0666的消息队列,如果创建失败为-1,则执行下面*/
    if((msgid=msgget((key_t)12345,0666|IPC_CREAT))==-1)
    {
 perror("message");                    //当msgid等于-1时则打印错误的信息
 exit(EXIT_FAILURE);                  //异常退出
    }

    while(running)                           //当running的值为"真"时
    {
 printf("Enter the mssage to send:"); //打印提示信息
 fgets(buffer,BUFSIZ,stdin);          //从键盘输入最大BUFSIZ这么大的字节,保存在buffer中去
 some_data.my_msg_type=1;            //结构体变量some_data的成员变量my_msg_type赋初值为1
 strcpy(some_data.msg_text,buffer);  //将buffer的内容复制到some_date.msg_text中去

 /*下面:如果消息创建成功,发送大小为MAX_TEXT的some_data结构体变量的msgid消息队列这个描述符 */
 if((msgsnd(msgid,(void *)&some_data,MAX_TEXT,0))==-1)
 {
     perror("msgsnd");             //发送失败时则打印错误的信息
     exit(EXIT_FAILURE);           //异常退出
 }

 if(strncmp(buffer,"end",3)==0)   //只比较字符串前面3个字符buffer和end等于0时,执行下面
 {
     running=0;                   //把零赋给running.
 }
    }
    return 0;                           //返回零
}
 

C#窗体之间传递消息和事件

C# WinForm编程中,你是否遇到过这样的问题,在主窗口Form1中点击按钮,弹出一个子窗口Form2,你希望在Form2中调用Form1的函数,改变Form1的显示,却发现Form1不听话,达不...
  • hemeinvyiqiluoben
  • hemeinvyiqiluoben
  • 2014年12月04日 14:06
  • 8330

JMS消息传送机制ActiveMQ

JMS(Java Message Service) 消息服务是一个面向消息中间件(MOM)的API,用于在两个应用程序之间,或者分布式系统中发送消息消费消息,进行异步通信,数据交互。JMS提供的API...
  • manmanxiaohui
  • manmanxiaohui
  • 2016年10月11日 21:54
  • 1290

Handler消息传送机制总结

Handler类的主要作用: 1.在子线程中发送数据。 2.在主线程中接收数据,处理数据。 这个过程和使用的方法都是我们要理解的...
  • wenzhi20102321
  • wenzhi20102321
  • 2016年10月17日 12:50
  • 2360

SendMessage和PostMessage发送消息(不同进程传递字符串)

一、函数功能 该函数将指定的消息发送到一个或多个窗口。此函数为指定的窗口调用窗口程序,直到窗口程序处理完消息再返回。而函数PostMessage不同,将一个消息寄送到一个线程的消息队列后立即返回。 ...
  • u014053368
  • u014053368
  • 2014年04月07日 15:47
  • 1978

[VC]SendMessage和PostMessage发送消息(不同进程传递字符串)

一、函数功能 该函数将指定的消息发送到一个或多个窗口。此函数为指定的窗口调用窗口程序,直到窗口程序处理完消息再返回。而函数PostMessage不同,将一个消息寄送到一个线程的消息队列后立即返回。 ...
  • slj_win
  • slj_win
  • 2014年11月04日 22:13
  • 2901

极光发送消息通知

  • 2017年01月11日 17:50
  • 245KB
  • 下载

使用快捷键和发送消息触发菜单命令

  • 2017年03月15日 17:36
  • 9KB
  • 下载

Pushlet点对点发送消息

  • 2017年06月08日 16:31
  • 542KB
  • 下载

android模拟按键发送消息

  • 2012年08月29日 10:11
  • 35KB
  • 下载

Java Socket建立连接和发送消息

  • 2016年04月25日 21:00
  • 621KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章: /*发送消息,单项的传递消息*/
举报原因:
原因补充:

(最多只允许输入30个字)