hjælp til program, syntax problem
I den sidste del af koden, har jeg udkommenteret noget kode, koden virker, men som i nok kan se, så skal man taste noget som så sendes tilbage. Det som jeg ønsker er at istedet for at taste en tekst, så vil jeg gerne forud deffinere hvad den skal sende tilbage, men hvordan gør jeg det?#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <errno.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/ipc.h>
#include <sys/msg.h>
#define MAX_TEXT 512
struct my_msg_st {
long int my_msg_type;
char some_text[BUFSIZ];
};
int main()
{
int running = 1;
int msgid, msgid2, msgid3;
struct my_msg_st some_data;
long int msg_to_receive = 0;
char buffer[BUFSIZ];
/* First, we set up the message queue. */
msgid = msgget((key_t)1, 0666 | IPC_CREAT);
msgid2 = msgget((key_t)2, 0666 | IPC_CREAT);
msgid3 = msgget((key_t)3, 0666 | IPC_CREAT);
if (msgid == -1) {
fprintf(stderr, "msgget failed with error: %d\n", errno);
exit(EXIT_FAILURE);
}
/* Then the messages are retrieved from the queue, until an end message is encountered.
Lastly, the message queue is deleted. */
while(running) {
if (msgrcv(msgid, (void *)&some_data, BUFSIZ,
msg_to_receive, 0) == -1) {
fprintf(stderr, "msgrcv failed with error: %d\n", errno);
exit(EXIT_FAILURE);
}
printf("You wrote: %s", some_data.some_text);
if (strncmp(some_data.some_text, "end", 3) == 0) {
running = 0;
}
//printf("Enter some text: ");
//fgets(buffer, BUFSIZ, stdin);
buffer = 1;
some_data.my_msg_type = 1;
strcpy(some_data.some_text, buffer);
if (msgsnd(msgid, (void *)&some_data, MAX_TEXT, 0) == -1) {
fprintf(stderr, "msgsnd failed\n");
exit(EXIT_FAILURE);
}
if (strncmp(buffer, "end", 3) == 0) {
running = 0;
}
}
exit(EXIT_SUCCESS);
}