This project is a custom command-line tool, ./ls, that works just like the standard ls command on Unix systems. It's written in C and is designed to list files and folders, along with key details like size, owner, and modification time. The project's goal is to be a lightweight and efficient tool, handling memory and file system interactions directly.
Language: C
Skills: System Programming, Custom Data Structures, Dynamic Memory Management, Command-Line Interface (CLI) Development.
System Programming: Interacts directly with the operating system's kernel and core libraries to perform low-level file and directory operations.
Dynamic Memory Management: Utilizes explicit memory allocation and deallocation on the heap to efficiently handle and store file metadata.
Command-Line Interface (CLI) Development: Implements a robust command-line parser to accept and interpret various user-specified arguments and options.
Data Sorting: Employs an efficient sorting algorithm to arrange the output listings in a user-friendly, alphabetical order.