Giter VIP home page Giter VIP logo

get_next_line's Introduction

get_next_line

Build Status


💡 Acerca del Proyecto

El objetivo de este proyecto es implementar una función que devuelva una línea leída desde un descriptor de archivo.

Este proyecto te permitirá entender cómo se abren, leen y cierran archivos en un sistema operativo, y cómo son interpretados por C. Esta tarea es fundamental para cualquier programador, ya que gran parte del tiempo se basa en la manipulación de archivos para la gestión y persistencia de datos. Consiste en codificar una función que devuelve una línea a la vez desde un archivo de texto.

Para obtener información más detallada, consulta el Subject.

🛠️ Uso

Requisitos

La función está escrita en lenguaje C y por lo tanto requiere el compilador gcc y algunas bibliotecas estándar de C para funcionar.

Instrucciones

1. Uso en tu código

Para utilizar la función en tu código, simplemente incluye su encabezado:

#include "get_next_line.h"

y al compilar tu código, agrega los archivos fuente y los FLAGS necesarios:

gcc get_next_line.c get_next_line_utils.c -D BUFFER_SIZE=<tamaño>

📋 Pruebas

Solo necesitas editar el archivo get_next_line.c y descomentar la función main y los encabezados dentro de él. Puedes editar los archivos test.txt para colocar otro texto si deseas probar otros casos. Luego, simplemente ejecuta este comando (cambia "xx" con el tamaño del buffer deseado):

gcc -Wall -Werror -Wextra -D BUFFER_SIZE=xx get_next_line.c get_next_line_utils.c && ./a.out

Ejemplo de main para pruebas

Aquí hay un ejemplo de cómo podría verse tu main en el archivo get_next_line.c para realizar pruebas:

#include "get_next_line.h"
#include <fcntl.h>
#include <stdio.h>

int main(void)
{
    int fd;
    char *line;

    fd = open("test.txt", O_RDONLY);
    if (fd == -1)
        return (1);
    while ((line = get_next_line(fd)) != NULL)
    {
        printf("%s", line);
        free(line);
    }
    close(fd);
    return (0);
}

Notas Finales

  • Asegúrate de manejar correctamente la memoria para evitar fugas.
  • Considera todos los posibles casos borde (archivo vacío, línea muy larga, etc.).
  • Realiza pruebas exhaustivas para asegurarte de que la función se comporta como se espera en todas las situaciones posibles.

get_next_line's People

Contributors

gusgonza42 avatar

Watchers

 avatar

get_next_line's Issues

bonus

Implementation of the bonus part of the get next line.

Screenshot from 2024-06-15 12-25-50

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.