Skip to content

0xARCOS/get_next_line

Repository files navigation


get_next_line

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.


📦 Descripción

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.


📁 Estructura del Proyecto

get_next_line/
├── get_next_line.h        # Declaraciones
├── get_next_line.c        # Funciones principales
├── get_next_line_utils.c  # Funciones auxiliares

⚙️ Compilación

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 gnl

O usando un Makefile:

make

🧠 Uso

char *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 \n si hay una)
  • NULL al llegar al EOF o en caso de error

💡 Ejemplo de Salida

Archivo de entrada:

Hola mundo
Esto es una prueba

Output esperado:

Hola mundo
Esto es una prueba

🧰 Funciones principales

char *get_next_line(int fd);

Lee una línea del archivo, manejando buffer estático para mantener datos entre llamadas.

BUFFER_SIZE

Tamaño del buffer usado en cada llamada a read(). Puede modificarse en la compilación con -D.


🧑‍💻 Autor

Ariel (0xARCOS)
📍 Campus 42 Madrid
🔗 GitHub


📜 Licencia

Este proyecto es parte del aprendizaje en 42 y puede ser reutilizado para fines educativos.

About

A C function that reads a line from a file descriptor, implementing a buffer system for efficient reading. Part of the 42 School curriculum.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages