吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 962|回复: 6
收起左侧

[求助] c语言问题

[复制链接]
abchehead 发表于 2020-2-25 19:07
你好,就是可以编译但是运行就报错get err:No such file or directory是什么原因


#include <unistd.h>
#include <sys/ipc.h>
#include <sys/msg.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct msgbuf
{
        long type;
        char data[32];
};
main()
{
        key_t key;
        int msgid;
        int i;
        struct msgbuf msg;
       
        //1创建消息队列
        key=ftok(".",200);
        if(key==-1) printf("ftok err:%m\n"),exit(-1);
       
        msgid=msgget(key,0/*IPC_CREAT|IPC_EXCL|0666*/);
        if(msgid==-1)printf("get err:%m\n"),exit(-1);
        //2构造消息
               
        //3发送消息
        for(i=1;i<=10;i++)
        {
                bzero(msg.data,sizeof(msg.data));
                msg.type=1;
                sprintf(msg.data,"MessageI:%d",i);
                msgsnd(msgid,&msg,sizeof(msg.data),0);
        }
        for(i=1;i<=10;i++)
        {
                bzero(msg.data,sizeof(msg.data));
                msg.type=2;
                sprintf(msg.data,"MessageII:%d",i);
               
                msgsnd(msgid,&msg,sizeof(msg.data),0);
        }
        //4删除队列
        //msgctl(msgid,IPC_RMID,0);
}












































发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

Mr-墨云 发表于 2020-2-26 00:04
#include <sys/ipc.h>
#include <sys/msg.h>
你再查一下头文件,Dev编译后无法找到头文件。
absman1972 发表于 2020-2-26 00:21
#include <unistd.h>
#include <sys/ipc.h>
#include <sys/msg.h>

這幾個都是linux下的東西,如果你在linux下編譯應該不會有問題
如果你在windows 下編譯,可能要尋找替代方案
比如unistd.h,可以參考
https://blog.csdn.net/yebufan/article/details/5846394

ipc.h
https://github.com/git-for-windows/git-sdk-64/blob/master/usr/include/cygwin/ipc.h

msg.h
https://code.woboq.org/gcc/include/sys/msg.h.html

PS.不保證所有訊息都正確,但希望有幫助到你

免费评分

参与人数 1热心值 +1 收起 理由
abchehead + 1 热心回复!

查看全部评分

 楼主| abchehead 发表于 2020-2-26 12:06
是linuxcentos系统下编译的;编译的了,但是不能运行,
 楼主| abchehead 发表于 2020-2-26 12:09
Mr-墨云 发表于 2020-2-26 00:04
#include
#include
你再查一下头文件,Dev编译后无法找到头文件。

我就是编译可以通过,但是运行不了,运行就报错get err:No such file or directory
absman1972 发表于 2020-3-1 23:31
[C++] 纯文本查看 复制代码
msgid=msgget(key,0/*IPC_CREAT|IPC_EXCL|0666*/);
if(msgid==-1)printf("get err:%m\n"),exit(-1);


抱歉,前面眼花,誤以為是編譯錯誤,鬧了一個大紅臉,請見諒!

重新看了一遍,問題出在msgget
第二個參數設為0,表示:取消息隊列標識符,但此時尚未創建,所以會報錯
(即設為0只能存取已存在的,其他情況要搭配其他參數來使用,類似你註解掉的部分)

可參考
https://dulishu.top/systemv-msgget/

免费评分

参与人数 2吾爱币 +1 热心值 +2 收起 理由
Key君 + 1 + 1 用心讨论,共获提升!
abchehead + 1 谢谢@Thanks!

查看全部评分

 楼主| abchehead 发表于 2020-3-2 11:10
absman1972 发表于 2020-3-1 23:31
[mw_shl_code=cpp,true]msgid=msgget(key,0/*IPC_CREAT|IPC_EXCL|0666*/);
if(msgid==-1)printf("get err: ...

谢谢,以解决
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-26 20:26

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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