Odczyt daty

0

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?

0

sprawdź co zawiera msg.timeInfo przed wywołaniem printf("Message serwer: %s\n", asctime (msg.timeinfo)) bo może ten wskaźnik nie poakzywać na nic sensownego bo nie sprawdziłeś czy procedura localtime wykonała się poprawnie.

0

Wykonała się poprawnie nie zwraca nic błędu.

1 użytkowników online, w tym zalogowanych: 0, gości: 1