[C] Como hacer un buffer FIFO?

Iniciado por huchoko, 30 Diciembre 2018, 19:17 PM

0 Miembros y 1 Visitante están viendo este tema.

huchoko

Pues estoy haciendo un driver de teclado, y necesito una cola o mejor dicho buffer de tipo FIFO (First in, First out) en el cual pueda insertar y quitar elementos de la lista. En sí, tiene que ser de tipo char.
Saludos.

MAFUS

Crea un array de dimensión conocida el cual tenga dos punteros: lectura, i y ecritura, o.
Genera dos únicas funciones que serán las que trabajaran con ese array: una de lectura y una de escritura.

Función de lectura:
Si el puntero o es igual al puntero i (las posiciones a las que apuntan) el buffer está vacío y deberás informar sobre ello; en caso contrario leerás el carácter que hay en la posición o y lo harás avanzar una posición. Si o queda fuera del array, o pasa a apuntar el principio del array. Devuelves el carácter leído.

La función de escritura:
Guardarás en la posición i el carácter conseguido y compruebas si en la siguiente posición está o. Si lo está avisar de ello, sino avanzar o a la siguiente posición. Por supuesto si la siguiente posición está fuera del array mover i al inicio del array.