Witam. Piszę program typu klient serwer, w którym klient wysyła zapytanie do serwera a ten odsyła mu aktualną datę i czas.
struct msgbuf{
long mtype; /* typ komunikatu */
int pid;
char mtext[1]; /* tresc komunikatu */
struct tm * timeinfo;
}msg;
To moja struktura, która będę wysyłał. Program się ogólnie kompiluje, klient wysyła do serwera, ten to odbiera, wysyła, ale przy odbiorze przez klienta wyskakuje błąd: Naruszenie ochrony pamięci (core dumped)
Program wygląda tak:
serwer:
time_t rawtime;
time ( &rawtime );
msg.timeinfo = localtime (&rawtime);
if(msgsnd(id, &msg, sizeof(msg), 0) == -1){
perror("msgsnd ");
return EXIT_FAILURE;
Wysyła tą strukturę, a klient ją odbiera:
if(msgrcv(id, &msg, sizeof(msg), pid, 0) == -1){
perror("msgrcv ");
return EXIT_FAILURE;
}
printf("Message serwer: %s\n", asctime (msg.timeinfo));
Niby powinno być wszystko ok, ale w tym momencie wyrzuca mi błąd Naruszenie ochrony pamięci (core dumped). Gdzie popełniłem błąd?