Giter Club home page Giter Club logo

42-minishell's Introduction

Parte 1a:

Chequear si el texto introducido está bien y extraer la información

Parte 1b:

Gestión de hijos, pipes, ejecución de comandos

Parte 2:

Gestión de señales - variable global

Parte 3:

Builtins Conlleva la gestión de las variabes de entorno, inicialmente se obtienen con getenv, pero se pueden modificar o crear con export y eliminar con unset

Por hacer:

1a

proteger fallos de malloc y free de NULL -> extract element + norminette Gestionar $? heredoc + leaks: El delimitador se lee literalmente, no se transforma el delimitador. 'Delimitador' no expande las variables. C-c dentro de heredoc lo corta y vuelve a la shell sin ejecutar ninguna instrucción $?=130, C-\ no hace nada y C-d cierra el heredoc con un error (bash: warning: here-document at line 160 delimited by end-of-file (wanted 'DELIMITADOR')) pero sigue con las instrucciones $?=0. escribir errores separar ejecución de built-ins probar con varias pipes probar pipes sin comando, solo con redirecciones revisar si no necesitamos extern environ al tener la función getenv revisar super_split porque la gestión de las , que ya no es necesaria

Listado de archivos:

command.c -> buscar el archivo y devuelve la ruta execute.c -> coge la línea introducida en minishell, la parsea (mira la estructura) y la ejecuta extract_command.c -> de una cadena entre pipes, extrae el comando y los argumentos del mismo extract_element.c -> de una cadena extrae la primera palabra sustituyendo las variables, gestionando las comillas, etc. extract_file.c -> de una cadena entre pipes, extrae el archivo input (<) y el output (>) extract_pipe.c -> de una cadena larga, extrae el contenido entre pipes de la n-ésima pipe extract_utils.c -> funciones sueltas comunes a todos los archivos extract_*.c main.c parser.c -> chequea si la cadena introducida en minishell está bien escrita o no split_utils.c -> funciones sueltas para super_split.c super_split.c -> split que admite varios separadores a un tiempo

42-minishell's People

Contributors

irenegs avatar pablgarc avatar

Watchers

 avatar

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.