https://medium.com/@basilshaji32/introduction-to-c-on-linux-a-comprehensive-beginners-guide-3e5b358a9f3a