`
隐形的翅膀
  • 浏览: 496659 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

发送队列消息

 
阅读更多
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/ipc.h>
#include <sys/msg.h>
#include <errno.h>
#include <string.h>
/*
 * 
 */

typedef struct
{
long int nType;
char szText[256];
}MSG;

int main(int argc, char** argv) {
    key_t IKey1;
    int nMsgId;
    MSG msg;
    if((IKey1 = ftok("/etc/profile",1)) == -1)
    {
        perror("ftok");
        exit(1);
    }
    if((nMsgId = msgget(IKey1,IPC_CREAT|IPC_EXCL|0666)) == -1)
    {
        if(errno != EEXIST)
        {
            perror("msgget");
            exit(2);
        }
        
        if((nMsgId = msgget(IKey1,0)) == -1)
        {
            perror("msgget");
            exit(3);
        }
    }
    printf("KeyID=%x\n",IKey1);
    printf("MsgID=%d\n",nMsgId);
    
    memset(&msg,0x00,sizeof(MSG));
    msg.nType = 2;
    memcpy(msg.szText,"123456",6);
    if(msgsnd(nMsgId,(const void*)&msg,strlen(msg.szText),IPC_NOWAIT)<0)
    {
        perror("msgsnd");
    }
   
    return 0;
}

运行结果, 2 为两个消息,12 为长度,666为rwx
[root@64 ~]# ipcs -q

------ Message Queues --------
key        msqid      owner      perms      used-bytes   messages    
0x010088c2 0          root       666        12           2           

[root@elm64 ~]# 
分享到:
评论

相关推荐

    消息队列发送消息的C#代码实现

    本文将详细讲解如何使用C#实现消息队列发送消息,并探讨相关的技术细节。 首先,我们需要了解消息队列的基本概念。消息队列允许应用程序将消息放入队列,然后由接收方从队列中取出并处理。这种异步通信方式降低了...

    JMS消息队列

    JMS-java message Service ,消息队列原理介绍,适合activeMQ开发使用

    C#消息队列发送及接收

    在C#编程中,我们可以利用Microsoft Message Queuing(MSMQ)库来实现消息队列的发送和接收。本文将深入探讨C#中如何使用MSMQ进行消息队列的操作,并通过示例代码来展示具体实现。 首先,我们需要理解消息队列的...

    基于Swoole的微信发送模板消息队列服务项目模板

    基于Swoole的微信发送模板消息队列服务项目模板

    Delphi向MQ远程队列发送消息

    本篇文章将深入探讨如何使用古老的编程语言Delphi 7与IBM WebSphere MQ集成,实现向远程消息队列发送消息的功能。 首先,要进行这种开发工作,你需要确保已安装了IBM WebSphere MQ客户端库,因为Delphi程序需要依赖...

    ActiveMQ学习笔记之九--发送消息到队列中

    这篇"ActiveMQ学习笔记之九--发送消息到队列中"主要探讨的是如何通过编程方式向ActiveMQ队列发送消息,这对于理解和应用消息中间件至关重要。 首先,我们要理解ActiveMQ中的队列(Queue)概念。队列是一种先进先出...

    IBM MQ将消息发送至远程队列

    ### IBM MQ将消息发送至远程队列的知识点详解 #### 一、安装MQ IBM MQ的安装过程是在两台不同的主机上进行的。首先需要确保介质目录已经准备好,并且能够执行安装所需的命令。 ##### 安装步骤: 1. **接受...

    Linux消息队列

    在发送消息时,需要使用 `msgsnd` 系统调用,指定要发送的消息队列、消息数据和消息类型。在接收消息时,需要使用 `msgrcv` 系统调用,指定要接收的消息队列、消息类型和要接收的消息数据。 在 msgLucy.c 程序中,...

    用消息队列实现的简单聊天程序

    消息队列在IT行业中是一种非常重要的中间件技术,它主要用于应用程序间的异步通信,通过将消息放入消息队列,使得发送方和接收方无需同时在线即可完成数据交换,提高了系统的可扩展性和可靠性。在这个“用消息队列...

    ucOS消息队列使用

    - **LIFO发送**:使用`OSQPostFront()`函数将消息以后进先出的方式发送到队列中。 - **可选发送方式**:使用`OSQPostOpt()`函数发送消息,可以通过参数`opt`控制发送模式。 例如: ```c INT8U OSQPost(OS_EVENT *...

    MQ 介绍 消息队列 消息中间件

    初始化队列用于触发事件,传输队列暂时存储待传输消息,目标队列接收并存储消息,死信队列保存无法送达的消息。 3. **队列管理器(Queue Manager)**:队列管理器是核心组件,负责消息的管理和调度。它可以包含多个...

    基于网络编程中的消息队列

    它首先获取已存在的消息队列(因为没有IPC_EXCL标志,所以不会尝试创建新的队列),然后同样进入一个无限循环,接收LUCY类型的消息并显示,然后读取用户输入并发送回消息队列。 这两个程序的交互基于以下关键函数:...

    JAVA编程之Spring boot-activeMQ示例

    # Springboot-activeMQ 本项目基于Spring boot这一平台,整合流行的开源...2.队列类型queue,生产者发送队列消息,以及消费者消费相关队列消息 3.主题类型topic,创建主题,生产者发送主题消息,以及消费着消费主题消息

    STM32F407VET6串口6DMA发送队列和DMA接收队列

    本文将深入探讨STM32F407VET6中串口6(USART6)的DMA发送队列和接收队列的工作原理及配置方法。 首先,理解DMA的基本概念至关重要。DMA允许外围设备直接与内存交互,无需CPU参与,从而提高了数据传输速度。在STM32F...

    进程与消息队列进程与消息队列简单例子

    首先,程序打开两个文件,并将其内容读取到缓冲区中,然后将缓冲区的内容发送到消息队列中。接收进程从消息队列中读取数据,并将其写回文件中。 关键函数 * `msgget`:用于创建或打开一个消息队列,返回消息队列的...

    linux c消息队列实现

    发送端读取指定的文件,并且按照环境变量中设置的消息队列键值进行发送。如果要改代码,只要把键值改一下,结构体储存要发送的消息的那个数组对应改成自己想发送的值,就可以很好的实现功能。接收端同样按环境变量...

    xxjyjy5.rar_LINUX消息队列_linux 消息队列_linux 消息_linux 消息队列_消息队列

    msgget用于创建或打开一个消息队列并获取其标识符,msgsnd用于向消息队列发送消息,而msgrcv则用于从消息队列接收消息。消息队列中的消息通常包含一个类型标识,使得接收进程可以选择接收特定类型的消息。 三、消息...

    linux使用消息队列实现进程间双向通信

    4. **消息过滤**:发送方可以选择向特定标识符的消息队列发送消息,接收方也可以通过消息类型来筛选接收的消息。 在我们的示例中,`msg_quene_test_server`和`msg_queue_test_client`两个程序展示了如何创建、发送...

    查看消息队列软件,消息队列工具

    6. **消息确认**:消费者在成功处理消息后向队列发送确认,这样队列就可以安全地删除消息,避免重复处理。 现在,我们来谈谈如何使用消息队列工具。这类工具通常提供以下功能: 1. **监控与可视化**:实时显示队列...

Global site tag (gtag.js) - Google Analytics