Developer
2025
Development, Testing
C, Bash, Shell
Sanjay Kumar
Built a lightweight, executable shell program in C that replicates core Unix shell functionality. The project required implementing process management, signal handling, and file system navigation at a low level, demonstrating practical systems programming skills.
Note: Course assignment – full code not public, available upon request.
• Displays current working directory in real time using getcwd, with color-coded formatting (ANSI escape sequences)
• Implemented cd (with support for ~, nested paths, and quoted directory names) and exit without relying on exec
• Forks and executes external commands with exec, ensuring parent waits for child process completion
• Robust error messages for all system calls (fork, exec, chdir, wait, malloc), preventing crashes
• Captures SIGINT (Ctrl+C) safely using async-safe signal handlers, returning the user to the prompt without terminating the shell
• Quoted directory name support (cd “some folder name”)
• Multi-process piping (chains of up to 64 processes, e.g. echo “5\n3\n2” | sort | uniq)