day9.30

news2024/11/30 8:31:14

消息队列实现进程之间通信方式代码,现象

#include<myhead.h>

//消息结构体
typedef struct
{
    long msgtype;        
    char data[1024];       
}Msg_ds;

#define SIZE sizeof(Msg_ds)-sizeof(long)      


int main(int argc, const char *argv[])
{
    //1、创建key值
    key_t key;
    if((key = ftok("/", 'a')) == -1)
    {
        perror("ftok error");
        return -1;
    }

    //2、创建消息队列
    int msgid; 
    if((msgid = msgget(key, IPC_CREAT|0664)) == -1)
    {
        perror("msgget error");
        return -1;
    }

    //3、向消息队列中发送数据
    Msg_ds msg = {.msgtype = 100};
    
    while(1)
    {
        printf("请输入消息内容:");
        fgets(msg.data, sizeof(msg.data), stdin);    //从终端输入字符串
        //将字符串的'\n'换成'\0'
        msg.data[strlen(msg.data)-1] = '\0';

        //将消息发送到消息队列中
        if(msgsnd(msgid, &msg, SIZE, 0) == -1)
        {
            perror("msgsnd error");
            return -1;
        }

        if(strcmp(msg.data, "quit") == 0)
        {
            break;
        }

    }
    

    return 0;
}
#include<myhead.h>

//消息结构体
typedef struct
{
    long msgtype;        
    char data[1024];        
}Msg_ds;

#define SIZE sizeof(Msg_ds)-sizeof(long)    


int main(int argc, const char *argv[])
{
    //1、创建key值
    key_t key;
    if((key = ftok("/", 'a')) == -1)
    {
        perror("ftok error");
        return -1;
    }

    //2、创建消息队列
    int msgid; 
    if((msgid = msgget(key, IPC_CREAT|0664)) == -1)
    {
        perror("msgget error");
        return -1;
    }

    //3、从消息队列中取数据
    Msg_ds msg ;
    
    while(1)
    {
    

        //从消息队列中取数据
        //第一个0表示取消息的类型,每次都是取第一个
        //第二个0表示阻塞方式从消息队列中取数据
        if(msgrcv(msgid, &msg, SIZE, 0 ,0) == -1)
        {
            perror("msgsnd error");
            return -1;
        }

        if(strcmp(msg.data, "quit") == 0)
        {
            break;
        }

        printf("rcv: %s\n", msg.data);

    }

    //4、删除消息队列
    msgctl(msgid, IPC_RMID, NULL);
    

    return 0;
}

结果

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1051888.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

安全渗透测试基础之-Nessus漏洞扫描工具(安装下载)

【注:本文中所需软件请回复公众号后获取,有任何问题请留言,看到会第一时间回复,毕竟我有自己的工作,分享经验并不是主业,不能时刻关注到。如果您觉得我写的好,请记得将公众号设为星标公众号,否则下次可能找不到。先谢谢各位愿意努力奋斗的小伙伴们了。】 本篇是安装下…

UML学习笔记

前言 UML&#xff08;Unified Modeling Language&#xff09;是一种对软件密集系统进行可视化建模的一种语言。有了图后来就可以一目了然。 C中有好多继承图&#xff0c;我都看不懂&#xff0c;所以就来学习一波&#xff5e; -代表私有&#xff08;private&#xff09;的表示…

经典网络解(三) 生成模型VAE | 自编码器、变分自编码器|有监督,无监督

文章目录 1 有监督与无监督2 生成模型2.1 重要思路 3 VAE编码器怎么单独用&#xff1f;解码器怎么单独用&#xff1f;为什么要用变分变分自编码器推导高斯混合模型 4 代码实现 之前我们的很多网络都是有监督的 生成网络都是无监督的&#xff08;本质就是密度估计&#xff09;&a…

5、Linux驱动开发:设备-设备注册

目录 &#x1f345;点击这里查看所有博文 随着自己工作的进行&#xff0c;接触到的技术栈也越来越多。给我一个很直观的感受就是&#xff0c;某一项技术/经验在刚开始接触的时候都记得很清楚。往往过了几个月都会忘记的差不多了&#xff0c;只有经常会用到的东西才有可能真正记…

12、Kubernetes中KubeProxy实现之iptables和ipvs

目录 一、概述 二、iptables 代理模式 三、iptables案例分析 四、ipvs案例分析 一、概述 iptables和ipvs其实都是依赖的一个共同的Linux内核模块&#xff1a;Netfilter。Netfilter是Linux 2.4.x引入的一个子系统&#xff0c;它作为一个通用的、抽象的框架&#xff0c;提供…

华为智能高校出口安全解决方案(3)

本文承接&#xff1a; https://qiuhualin.blog.csdn.net/article/details/133267254?spm1001.2014.3001.5502 重点讲解华为智能高校出口安全解决方案的攻击防御&安全运维&日志审计的部署流程。 华为智能高校出口安全解决方案&#xff08;3&#xff09; 课程地址攻击防…

git报错:Failed to connect to 127.0.0.1 port 1080

Bug描述 由于在试了网上的这条命令 git config --global http.proxy socks5 127.0.0.1:1080 git config --global https.proxy socks5 127.0.0.1:1080git config --global http.proxy 127.0.0.1:1080 git config --global https.proxy 127.0.0.1:1080Bug描述&#xff1a;Faile…

对负采样(negative sampling)的一些理解

负采样&#xff08;negative sampling&#xff09;通常用于解决在训练神经网络模型时计算softmax的分母过大、难以计算的问题。但在LightGCN模型论文的BPR LOSS中&#xff0c;负采样的概念可能与传统的softmax分母问题不完全一样。 在LightGCN模型中&#xff0c;不同于传统的协…

Spring结合自定义注解实现 AOP 切面功能【详解】

Spring结合自定义注解实现 AOP 切面功能 Spring AOP 注解概述Aspect 快速入门execution 切点表达式 拦截指定类的方法Pointcut("annotation(xx)") 拦截拥有指定注解的方法常用注解1.Before&#xff1a;在切点方法前执行2.After&#xff1a;在切点方法后执行3.Around&…

Python爬虫获取百度图片+重命名+帧差法获取关键帧

&#xff08;清库存&#xff09; 获取图片 重命名 帧差法 爬虫获取图片文件重命名帧差法获取关键帧 爬虫获取图片 # 图片在当前目录下生成import requests import renum 0 numPicture 0 file List []def dowmloadPicture(html, keyword):global num# t 0pic_url re.fin…

【JVM】运行时数据区之 堆——自问自答

Q:堆和栈&#xff0c;在设计上有何用义&#xff1f; 此处我们不说数据结构的概念。 堆本身是一种存储结构&#xff0c;在代码的内存层面来看&#xff0c;无论是c 操作的原生内存&#xff0c;还是Java 背后的JVM&#xff0c;堆的作用都是进行持久存储的。 这个持久存储并不是…

集合-Collection

系列文章目录 1.集合-Collection-CSDN博客 文章目录 目录 系列文章目录 文章目录 前言 一 . 集合的继承体系 二 . 什么是Collection? 三 . 常用方法 1.add(Object element): 将指定的元素添加到集合中。 2. remove(Object element): 从集合中移除指定的元素。 3. bo…

国庆day1---消息队列实现进程之间通信方式代码,现象

snd&#xff1a; #include <myhead.h>#define ERR_MSG(msg) do{\fprintf(stderr,"__%d__:",__LINE__);\perror(msg);\ }while(0)typedef struct{ long msgtype; //消息类型char data[1024]; //消息正文 }Msg;#define SIZE sizeof(Msg)-sizeof(long)int main…

HP E1740A 模拟量输入模块

HP&#xff08;惠普&#xff09;E1740A 模拟量输入模块是一种用于数据采集和测量的工控模块&#xff0c;通常用于各种自动化和监测应用中。以下是该模拟量输入模块的一些可能特点和功能&#xff1a; 多通道输入&#xff1a; E1740A 模块通常具有多个模拟量输入通道&#xff0c;…

windows的arp响应

1.原理‘ 2.场景 3.步骤

YOLOv8+swin_transfomerv2

测试环境&#xff1a;cuda11.3 pytorch1.11 rtx3090 wsl2 ubuntu20.04 踩了很多坑&#xff0c;网上很多博主的代码根本跑不通&#xff0c;自己去github仓库复现修改的 网上博主的代码日常出现cpu,gpu混合&#xff0c;或许是人家分布式训练了&#xff0c;哈哈哈 下面上干货…

Android回收视图

本文所有代码均存放于https://github.com/MADMAX110/BitsandPizzas 回收视图是列表视图的一个更高级也更灵活的版本。 回收视图比列表视图更加灵活&#xff0c;所以需要更多设置&#xff0c;回收视图使用一个适配器访问它的数据&#xff0c;不过与列表视图不同&#xff0c;回收…

[RCTF2015]EasySQL 二次注入 regexp指定字段 reverse逆序输出

第一眼没看出来 我以为是伪造管理员 就先去测试管理员账号 去register.php 注册 首先先注册一个自己的账号 我喜欢用admin123 发现里面存在修改密码的内容 那么肯定链接到数据库了 题目又提示是sql 那我们看看能不能修改管理员密码 首先我们猜测闭合 通过用户名 admin…

HTML,CSS,JavaScript知识点

HTML&#xff0c;CSS&#xff0c;JavaScript知识点 HTML篇 HTML是超文本标记语言。文件以.html结尾。 Hello,HTML。常用的工具: 标题: <h1>一级标题</h1><h2>二级标题</h2><h3>三级标题</h3><h4>四级标题</h4>无序列表和有…

YOLOv8+swin_transfomer

测试环境&#xff1a;cuda11.3 pytorch1.11 rtx3090 wsl2 ubuntu20.04 本科在读&#xff0c;中九以上老师或者课题组捞捞我&#xff0c;孩子想读书&#xff0c;求课题组师兄内推qaq 踩了很多坑&#xff0c;网上很多博主的代码根本跑不通&#xff0c;自己去github仓库复现修…