Что происходит с машиной при чтении файла

«Что происходит с машиной при чтении файла» — вопрос из категории Linux, который задают на 23% собеседований Golang Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

При чтении файла в Go происходят следующие шаги:

  1. Открытие файла через os.Open() - возвращает *os.File и ошибку
  2. Чтение данных (буферизированное через bufio или напрямую)
  3. Закрытие файла через file.Close()

Основные нюансы:

  • Обязательно нужно закрывать файл (лучше через defer)
  • Для больших файлов лучше читать по частям
  • Обработка ошибок на каждом этапе критически важна

Пример:

file, err := os.Open("data.txt")
if err != nil {
    log.Fatal(err)
}
defer file.Close()

scanner := bufio.NewScanner(file)
for scanner.Scan() {
    fmt.Println(scanner.Text())
}

if err := scanner.Err(); err != nil {
    log.Fatal(err)
}