Large files that are created with the os.Seek() function may have holes in them and occupy fewer disk blocks than files with the same size, but without holes in them; such files are called sparse files. This section will develop a program that creates sparse files.
The Go code of sparse.go will be presented in three parts. The first part is the following:
package main import ( "fmt" "log" "os" "path/filepath" "strconv" )
The second part of sparse.go has the following Go code:
func main() {
if len(os.Args) != 3 {
fmt.Printf("usage: %s SIZE filename\n", filepath.Base(os.Args[0]))
os.Exit(1)
}
SIZE, _ := strconv.ParseInt(os.Args[1], 10, 64)
filename := os.Args[2]
_, err := os.Stat(filename)
if err == nil {
fmt.Printf("...