Я хочу создать очередь сообщений, но получаю ошибку при создании идентификатора. Может кто-нибудь предоставить мне лучшее решение для msgget по созданию идентификатора.
msgid=msgget((key_t)1234,0666 | IPC_CREAT);
Я получаю сообщение == - 1
#include<stdio.h>
#include<stdlib.h>
#include<sys/ipc.h>
#include<sys/msg.h>
struct msg_buf{
long msg_type;
char msg_txt[100];
}message;
int main()
{
//key_t key;
int msgid;
//key=ftok("progfile",65);
msgid=msgget((key_t)1234,0666 | IPC_CREAT);
if(msgid==-1)
{
printf("[-]Error in creating id:\n");
exit(1);
}
printf("[+]MSGID created:\n");
message.msg_type=1;
printf("Write data:");
scanf("%s",message.msg_txt);
if(msgsnd(msgid,&message,sizeof(message),0)==-1)
{
printf("[-]Error while semnding message:\n");
exit(1);
}
printf("Data send is: %s \n",message.msg_txt);
return 0;
}
Выход:
root@DESKTOP-UFTQBQ8:/mnt/c/Users/BRAHMA JAISWAL/Desktop# ./b
[-]Error in id creation: