In the previous chapter, we talked about two advanced, but somewhat theoretical, Go topics: interfaces and reflection. The Go code that you will find in this chapter is anything but theoretical!
The subject of this chapter is systems programming because, after all, Go is a mature systems programming language that was born out of frustration. Its spiritual fathers were unsatisfied with the programming language choices they had for creating systems software, so they decided to create a new programming language.
This chapter focuses on the following topics:
- UNIX processes
- The flag package
- The viper package
- The cobra package
- The use of the io.Reader and io.Writer interfaces
- Handling UNIX signals in Go...