char fifo_read(struct charFifo * ptr_fif, char * ptr_token){ if( ptr_fif->nb_token_available == 0) return 0; //FIFO VIDE *ptr_token=ptr_fif->data[ptr_fif->read_index]; //la donnée est lue depuis le buffer à la case read_index (ptr_fif->read_index )++; //read_index est incrémenté if( ptr_fif->read_index >= ptr_fif->buffer_size) //si il dépasse la taille du buffer, il est remis à 0, cela remplace l'opérateur modulo ptr_fif->read_index = 0 ; ptr_fif->nb_token_available--; //il y a une donnée de moins disponible dans la FIFO return 1; //OK }