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++; } } }

Rispondi quotando