РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
539 of 1593 menu

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

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

Синтаксис

os.OpenFile("filename", os.O_WRONLY|os.O_TRUNC, 0644)

Пример

Давайте откроем существующий файл для записи, обрезав его содержимое:

package main import ( "fmt" "os" ) func main() { file, err := os.OpenFile("data.txt", os.O_WRONLY|os.O_TRUNC, 0644) if err != nil { fmt.Println("Error:", err) return } defer file.Close() _, err = file.WriteString("new content") if err != nil { fmt.Println("Error:", err) return } fmt.Println("file truncated and written successfully") }

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

"file truncated and written successfully"

Пример

Давайте попробуем открыть несуществующий файл с флагом os.O_TRUNC без os.O_CREATE:

package main import ( "fmt" "os" ) func main() { file, err := os.OpenFile("missing.txt", os.O_WRONLY|os.O_TRUNC, 0644) if err != nil { fmt.Println("Error:", err) return } defer file.Close() fmt.Println("file opened successfully") }

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

"Error: open missing.txt: no such file or directory"

Пример

Давайте создадим новый файл и сразу обрежем его до нулевой длины с помощью комбинации флагов os.O_CREATE и os.O_TRUNC:

package main import ( "fmt" "os" ) func main() { file, err := os.OpenFile("new.txt", os.O_CREATE|os.O_WRONLY|os.O_TRUNC, 0644) if err != nil { fmt.Println("Error:", err) return } defer file.Close() _, err = file.WriteString("hello world") if err != nil { fmt.Println("Error:", err) return } fmt.Println("file created and written successfully") }

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

"file created and written successfully"

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

  • константу os.O_CREATE,
    которая создает файл, если он не существует
  • константу os.O_APPEND,
    которая дописывает данные в конец файла
  • константу os.O_EXCL,
    которая используется с os.O_CREATE для создания файла только если его нет
  • функцию os.OpenFile,
    которая открывает файл с указанными флагами и правами доступа
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить