Minishell
UNIX Command Line Interpreter in C
A custom UNIX shell developed in pure C as part of the 42 Network curriculum. It recreates core bash functionalities including command execution path resolving, pipelines, input/output redirections, environment variable expansions, and signal handling.
Handling complex nested tokens, quotes, syntax edge cases, and preventing memory leaks or zombie processes when managing concurrent piped commands.
Built a custom Lexer and Abstract Syntax Tree (AST) parser, managed process branching via fork() & execve(), implemented a dual pipeline runner using pipe() and dup2(), and engineered signal handlers for SIGINT/SIGQUIT.
Demonstrates low-level UNIX process management, file descriptor manipulation, strict dynamic memory control, and defensive programming in C.
Technical Key Highlights
- ▸Custom AST Parser for complex quote rules & variable expansion
- ▸Process management with fork(), execve(), waitpid() & signal traps
- ▸Robust error reporting matching GNU Bash standards
- ▸Zero memory leaks verified under Valgrind