Book Image

Go Systems Programming

Book Image

Go Systems Programming

Overview of this book

Go is the new systems programming language for Linux and Unix systems. It is also the language in which some of the most prominent cloud-level systems have been written, such as Docker. Where C programmers used to rule, Go programmers are in demand to write highly optimized systems programming code. Created by some of the original designers of C and Unix, Go expands the systems programmers toolkit and adds a mature, clear programming language. Traditional system applications become easier to write since pointers are not relevant and garbage collection has taken away the most problematic area for low-level systems code: memory management. This book opens up the world of high-performance Unix system applications to the beginning Go programmer. It does not get stuck on single systems or even system types, but tries to expand the original teachings from Unix system level programming to all types of servers, the cloud, and the web.
Table of Contents (13 chapters)

Working with System Files

In the previous chapter, we talked about file input and output in Go, and created Go versions of the wc(1), dd(1), and cp(1) utilities.

While the main subject of this chapter is Unix system files and log files, you will also learn many other things, including pattern matching, file permissions, working with users and groups, and dealing with dates and times in Go. For all these subjects, you will see handy Go codes that will explain the presented techniques, and these can be used in your own Go programs without requiring too many changes.

So, this chapter will talk about the following topics:

  • Appending data to an existing file
  • Reading a file and altering each one of its lines
  • Regular expressions and pattern matching in Go
  • Sending information to Unix log files
  • Working with dates and times in Go
  • Working with Unix file permissions
  • Working with user IDs...