I wanna create a message queue but getting an error in id creation.Can someone provide me a better solution for msgget to create id.
msgid=msgget((key_t)1234,0666 | IPC_CREAT);
I'm getting msgid==-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;
}
Output:
root@DESKTOP-UFTQBQ8:/mnt/c/Users/BRAHMA JAISWAL/Desktop# ./b
[-]Error in id creation: