Leer una línea de un descriptor de archivo puede parecer trivial, pero ¿y si sólo puedes usar
read()una vez por llamada? Este proyecto entrena memoria dinámica, buffers y control de archivos.
get_next_line es una función que devuelve una línea leída desde un descriptor de archivo (fd), sin importar su tamaño. Es parte del currículum de la 42 School y una base sólida para proyectos que trabajan con archivos, sockets o entradas estándar.
get_next_line/
├── get_next_line.h # Declaraciones
├── get_next_line.c # Funciones principales
├── get_next_line_utils.c # Funciones auxiliares
Puedes compilar los archivos con:
cc -Wall -Wextra -Werror -D BUFFER_SIZE=42 get_next_line.c get_next_line_utils.c main.c -o gnlO usando un Makefile:
makechar *line;
int fd = open("archivo.txt", O_RDONLY);
line = get_next_line(fd);
printf("%s", line);La función devuelve:
- Una línea completa (terminada en
\nsi hay una) NULLal llegar al EOF o en caso de error
Archivo de entrada:
Hola mundo
Esto es una prueba
Output esperado:
Hola mundo
Esto es una prueba
Lee una línea del archivo, manejando buffer estático para mantener datos entre llamadas.
Tamaño del buffer usado en cada llamada a read(). Puede modificarse en la compilación con -D.
Ariel (0xARCOS)
📍 Campus 42 Madrid
🔗 GitHub
Este proyecto es parte del aprendizaje en 42 y puede ser reutilizado para fines educativos.

