Skip to content

A function that reads a file line by line, allowing efficient handling of input from files, stdin, or network streams.

Notifications You must be signed in to change notification settings

msabr/GET_NEXT_LINE_1337

Repository files navigation

get_next_line - 42 Network

Overview

Get Next Line delivers a function, get_next_line(), that retrieves a line from a file descriptor. It’s divided into two parts:

  • Mandatory Part: A single function to read lines sequentially from a file descriptor or standard input.
  • Bonus Part: Enhanced version supporting multiple file descriptors simultaneously with a single static variable.

Key Features

  • Returns a line ending with \n (unless EOF is reached without it).
  • Handles both file input and standard input efficiently.
  • Uses static variables for state persistence across calls.
  • Bonus: manages multiple file descriptors without mixing their reading threads.

Restrictions

  • Written in C, adhering to the 42 Norm.
  • No unexpected crashes (e.g., segmentation faults).
  • No memory leaks from heap allocations.
  • Compiled with -Wall -Wextra -Werror and -D BUFFER_SIZE=n (e.g., 42).
  • No use of libft, lseek(), or global variables.

Getting Started

Prerequisites

  • C compiler (e.g., clang or gcc).
  • make utility.

How to Build and Run

  1. Clone the repository:

    git clone https://github.com/msabr/GET_NEXT_LINE_1337
    cd GET_NEXT_LINE_1337
    
  2. Build the mandatory part:

    cc -Wall -Wextra -Werror -D BUFFER_SIZE=42 get_next_line.c get_next_line_utils.c
    
  3. Build the bonus part (optional, separately):

    cc -Wall -Wextra -Werror -D BUFFER_SIZE=42 get_next_line_bonus.c get_next_line_utils_bonus.c
    
  4. Run with a file or standard input:

    ./a.out <file>
    

Project Structure

  • get_next_line.h: function prototype for mandatory part.
  • get_next_line.c: main function source.
  • get_next_line_utils.c: helper functions.
  • get_next_line_bonus.h: bonus function prototype.
  • get_next_line_bonus.c: bonus main source.
  • get_next_line_utils_bonus.c: bonus helper functions.

Releases

No releases published

Packages

No packages published

Languages