So this is a combination of random programs I'm writing while learning. Currently working on backtracing algorithm for a sudoku solver. I'm feeling confident in my skills of reading others code. e.g. minishell is a french program off of github. I'll add a source later and properly fork it. Also feel pretty good about my program designs and APIs as well as some beginner algorithms. Need to work on network programming and signals as well as forking and multithreading. Possibly work on memory and dynamic allocation as well
Another thing I want to get back to is the K&R book then Berj and TCP/IP Illustrated &c.
- Build some kind of file parser for configs
- Build an input parser
- Struct to Binary – Write a
Personstruct (name, age) to a binary file. - Binary to Struct – Read the binary file and print each person.
- Append Log Line – Append a line with a timestamp to a
.txtlog. - Line Counter – Count how many lines exist in a given text file.
- Array to File – Serialize an array of structs to disk.
- Read Column – Read a CSV file and print only the second column.
- Log Levels – Write logs with "INFO", "WARN", or "ERROR" prefixes.
- Word Counter – Count how many times a word appears in a file.
- TCP Echo Server – Accept a client and echo back all input.
- TCP Client – Connect to a server and send
"Hello"string. - Input Validation – Validate string before sending (e.g., alphanumeric only).
- Fake Packet Loss – Use
rand()to simulate dropped packets. - Simple Protocol – Send a 4-byte length before the message body.
- Dynamic Int Array – Create resizable array with
malloc+realloc. - Nested Free – Free a struct with internal heap pointers.
- Intentional Leak – Leak memory on purpose, then fix it.
- Fixed-Size Cache – Evict oldest item when cache array is full.
- Singly Linked List – Add, delete, and print operations.
- Find Duplicates – From a list of
int, print duplicates. - Hash Function – Implement a basic hash function for strings.
- Key=Value Parser – Split
key=valueinto separate variables. - Struct Sorter – Sort an array of structs by field (like
age). - Lookup Table – Searchable array of key/value pairs via struct.
- Reverse String – In-place string reversal.
- Longest Word – Return longest word in a sentence.
- Hex to Int – Convert
"1F"string to integer. - Command Parser – Parse
"add 2 3"into a function call. - Simple Calculator – CLI calculator supporting
+ - * /.
- Is Integer? – Check if string is a valid base-10 integer. This is almost done. Just modify one of the stoi functions
- Login Mock – Hardcoded username/password login system.
- Email Validator – Check for presence of
@and.after. - Test Helper – Implement
assert_equal()for simple unit tests.
- Time Function – Measure time a function takes with
gettimeofday(). - Print Env Vars – List all environment variables.
- Get CWD – Print current working directory.
- Config Reader – Load key/value settings from a config file.
- PRNG w/ Seed – Custom pseudo-random generator with user seed.
- CLI Menu – Menu system using
switchandscanf. - Tokenizer – Split a string on spaces or commas.
- Run Tracker – Save how many times program has been run (file counter).