Ciao, ho un problema nel capire una parte di questo codice.
Mi hanno spiegato che

if(strcmp(temp,"_")==0)

sta ad indicare che temp "punta" alla fine di un messaggio. Volevo sapere perchè per indicare la fine di un messaggio si è scritto questo codice.

Grazie

codice:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/msg.h>
#include <sys/ipc.h>
#include <sys/shm.h>
#include <sys/sem.h>

#define DIMENSIONE 2560
#define TAGLIA_OBJ 56
#define TAGLIA_TXT 200
#define NUM_MAX_MSG (DIMENSIONE/TAGLIA_OBJ + TAGLIA_TXT)

typedef struct {
  int tipo;
  int memoria;
  int semaforo;
} boot;

typedef struct {
  char obj[TAGLIA_OBJ];
  char txt[TAGLIA_TXT];
} message;

message messaggio;

void errore(char* temp){
  printf("%s",temp);
  exit(-1);
}

void printMenu() {
	printf("==================================================\n");
	printf("	BACHECA ELETTRONICA VOLATILE		\n");
	printf("==================================================\n");
	printf("A. Leggi tutti i messaggi nella bacheca;\n");
	printf("B. Leggi un messaggio in bacheca;\n");
	printf("C. Inserisci un messaggio in bacheca;\n");
	printf("D. Rimuovi un messaggio dalla bacheca;\n");
	printf("Q. Esci dal programma;\n");
	printf("--------------------------------------------------\n");
	printf("Immetti la tua scelta: ");
}

void readMessages(int ds_shm){
  char* temp;
  int cont =1;
  temp = shmat(ds_shm, NULL, SHM_R);
  if(temp == (char*) -1){
    printf("Errore nella call shmat\n");
    exit(-1);
  }

    while(strcmp(temp,"")!=0){
      if(strcmp(temp,"_")==0){ 
        temp += TAGLIA_OBJ + TAGLIA_TXT;
        cont++;
      }
      else{
        printf("Codice del messaggio: %d\n", cont);
        printf("Oggetto: %s\n", temp);
        temp+=TAGLIA_OBJ;
        printf("Testo: %s\n", temp);
        printf("--------------------------------------------------\n");
        temp += TAGLIA_TXT;
        cont++;
      }
    }

    }