消息队列IPC客户端报Invalid Argument错误及调试异常问题排查
跨进程消息队列运行报错问题
现象描述
尝试在两个进程间创建System V消息队列实现跨进程通信,客户端程序编译全程无警告,运行时抛出Invalid argument(参数无效)错误,对应报错场景留存有参考截图。
核心疑问
- 为什么调试器的调用栈跟踪中,会出现自己代码里从未主动调用过的
write等文件操作类系统调用? - 如何消除当前报错,成功建立跨进程通信通道?
- 现有客户端代码存在哪些遗漏逻辑、缺失的配置?
客户端源码
#include "v1.h" int main(int argc, char const *argv[]) { int mqid; struct request req; key_t key = ftok("/home/Desktop/as3/v1/v1s.c", 65); mqid = msgget(key, 0666); req.msg = "first stage"; do { msgsnd(mqid, &req, sizeof(struct request), 0); perror("client:"); } while(1); return 0; } // 代码作者备注的临时疑问:是不是需要给某个参数传入类似IP的配置?
内容的提问来源于stack exchange,提问作者qiu
相关产品推荐
相关产品推荐

