Константа os.O_WRONLY

Константа os.O_WRONLY задает режим открытия файла только для записи. Она используется в качестве флага при вызове функции os.OpenFile. При открытии файла с этим флагом можно выполнять операции записи, но чтение из файла будет недоступно. Если файл не существует, то его необходимо создать с помощью флага os.O_CREATE, иначе будет возвращена ошибка.

Синтаксис

goos.OpenFile(name, os.O_WRONLY, perm)

Где name - имя файла, perm - права доступа к файлу.

Пример

Давайте откроем файл только для записи и запишем в него строку:

gopackage main

import (
  "fmt"
  "os"
)

func main() {
  file, err := os.OpenFile("test.txt", os.O_WRONLY|os.O_CREATE, 0644)
  if err != nil {
    fmt.Println("Error opening file:", err)
    return
  }
  defer file.Close()

  _, err = file.WriteString("Hello, World!")
  if err != nil {
    fmt.Println("Error writing to file:", err)
    return
  }

  fmt.Println("File written successfully")
}

Результат выполнения кода:

go"File written successfully"

Пример

Попробуем открыть файл только для записи и прочитать из него:

gopackage main

import (
  "fmt"
  "os"
)

func main() {
  file, err := os.OpenFile("test.txt", os.O_WRONLY, 0644)
  if err != nil {
    fmt.Println("Error opening file:", err)
    return
  }
  defer file.Close()

  data := make([]byte, 100)
  _, err = file.Read(data)
  if err != nil {
    fmt.Println("Error reading from file:", err)
    return
  }

  fmt.Println(string(data))
}

Результат выполнения кода:

go"Error reading from file: bad file descriptor"

Пример

Откроем файл для записи с добавлением данных в конец:

gopackage main

import (
  "fmt"
  "os"
)

func main() {
  file, err := os.OpenFile("test.txt", os.O_WRONLY|os.O_APPEND|os.O_CREATE, 0644)
  if err != nil {
    fmt.Println("Error opening file:", err)
    return
  }
  defer file.Close()

  _, err = file.WriteString("Appended line\n")
  if err != nil {
    fmt.Println("Error writing to file:", err)
    return
  }

  fmt.Println("Data appended successfully")
}

Результат выполнения кода:

go"Data appended successfully"

Смотрите также

  • константу os.O_RDONLY,
    которая открывает файл только для чтения
  • константу os.O_RDWR,
    которая открывает файл для чтения и записи
  • функцию os.OpenFile,
    которая открывает файл с указанными флагами и правами
  • функцию os.WriteFile,
    которая записывает данные в файл целиком