- Custom shell written in C with support for:
- Simple commands
- Background execution (
#suffix) - Command sequences (
,separator) - Pipes (
—separator) - Input/output redirection (
>,<) - Basic environment variable management
- Program:
my_fm.c - Operations on a single file or directory:
- Create, rename, delete
- Append text or binary data
- Read and print first 50 bytes
- Program:
my_bfm.c - Bulk file and directory management:
- Create, rename, delete (including non-empty directories)
- Append data to files
- Maintain a log of actions performed
- Program:
my_cmd.c - Executing binaries with process control:
- Run in foreground or background
- Capture and print process details:
- Command-line received
- Child process ID
- Exit code
- Program:
my_ipc.c - Implementing IPC using
pipe()for command chaining:- Handles a data generator (
cmd1) and a data consumer (cmd2) - Uses system calls like
open(),close(),dup2(),fork(),exec(), andwaitpid()
- Handles a data generator (
- Efficiently copies files (text and binary) with system calls
Course: Systems Programming
Instructor: Abhijat Vichare (Visiting Faculty)
University: FLAME University
Each program follows UNIX system calls, does not define custom error codes, and was developed collaboratively, emphasizing low-level system programming, process management, and IPC mechanisms.