Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: huchoko en 30 Diciembre 2018, 19:17 pm



Título: [C] Como hacer un buffer FIFO?
Publicado por: huchoko en 30 Diciembre 2018, 19:17 pm
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.


Título: Re: [C] Como hacer un buffer FIFO?
Publicado por: MAFUS en 31 Diciembre 2018, 00:20 am
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.