/*
* msghandler.c
*
* Created on: 2011-11-15
* Author: snape
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/msg.h>
#include <fcntl.h>
#include <unistd.h>
//usage : msghandler KEY [c|d]
// KEY指定消息队列得关键字 c为创建 d为删除
int main(int argc, char **argv) {
int KEY;
if (argc != 2 && argc != 3) {
fprintf(stderr, "usage : msghandler KEY [c|d]\n");
exit(1);
}
KEY = atoi(argv[1]);
printf("%x\n",KEY);
//查看ipc 消息队列信息
if (argc == 2) {
execlp("ipcs", "ipcs", NULL);
exit(0);
}
//创建
if (argc == 3 && strcmp(argv[2], "c") == 0) {
if (msgget(KEY, 0666 | IPC_CREAT | IPC_EXCL) < 0) {
fprintf(stderr, "create message queue %x error!\n", KEY);
exit(1);
} else {
fprintf(stderr, "creat message queue %x success!\n", KEY);
//execlp("ipcs", "ipcs", NULL);
exit(0);
}
}
//删除
if (argc == 3 && strcmp(argv[2], "d") == 0) {
if ((msgctl(msgget(KEY, 0666), IPC_RMID, NULL)) < 0) {
fprintf(stderr, "delete message queue %x error!\n", KEY);
exit(1);
} else {
fprintf(stderr, "delete message queue %x success!\n", KEY);
//execlp("ipcs", "ipcs", NULL);
exit(0);
}
}
return 0;
}
IPC--消息队列 message queue --msgctl 函数(创建 删除 查看 综合运用)
最新推荐文章于 2024-10-09 21:24:03 发布
本文介绍了一个使用C语言编写的脚本,用于创建和删除IPC消息队列,包括使用命令行参数进行交互。
&spm=1001.2101.3001.5002&articleId=6972529&d=1&t=3&u=efc3eef438bd431595e6369a456d5f9e)
1452

被折叠的 条评论
为什么被折叠?



