This is a counter example written in Go.
examples/go-counter/counter.go
package main
import (
"fmt"
"os"
"bufio"
"strconv"
"strings"
)
func main() {
filename := "counter.txt"
var fh *os.File
counter := 0
_, err := os.Stat(filename)
if !os.IsNotExist(err) {
fh, _ = os.Open(filename)
reader := bufio.NewReader(fh)
var line string
line, err := reader.ReadString('\n')
if err != nil {
fmt.Println("error")
fmt.Println(err)
os.Exit(1)
}
line = strings.TrimSuffix(line, "\n")
counter, err = strconv.Atoi(line)
if err != nil {
fmt.Println("error")
fmt.Println(err)
os.Exit(1)
}
}
counter++
fmt.Printf("%d\n", counter)
fh, err = os.Create(filename)
if err == nil {
fh.WriteString(fmt.Sprintf("%d\n", counter))
fh.Close()
}
}