Although I don’t use C professionally, I enjoy reading low-level documentation because it sheds more light on how things work under the hood. Beej’s Guide to Network Programming is a great book which is focused on network sockets and the ways we can interact with them.
Things like select
and epoll
are the secret sauce which enables higher-level non-blocking IO abstractions such as Kotlin coroutines and async Rust, so this book can be of interest to anyone who’s curious to see how the sausage gets made.