Константа os.O_WRONLY
Константа os.O_WRONLY задает режим открытия файла только для записи.
Она используется в качестве флага при вызове функции os.OpenFile.
При открытии файла с этим флагом можно выполнять операции записи,
но чтение из файла будет недоступно. Если файл не существует,
то его необходимо создать с помощью флага os.O_CREATE,
иначе будет возвращена ошибка.
Синтаксис
os.OpenFile(name, os.O_WRONLY, perm)
Где name - имя файла, perm - права доступа к файлу.
Пример
Давайте откроем файл только для записи и запишем в него строку:
package 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")
}
Результат выполнения кода:
"File written successfully"
Пример
Попробуем открыть файл только для записи и прочитать из него:
package 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))
}
Результат выполнения кода:
"Error reading from file: bad file descriptor"
Пример
Откроем файл для записи с добавлением данных в конец:
package 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")
}
Результат выполнения кода:
"Data appended successfully"
Смотрите также
-
константу
os.O_RDONLY,
которая открывает файл только для чтения -
константу
os.O_RDWR,
которая открывает файл для чтения и записи -
функцию
os.OpenFile,
которая открывает файл с указанными флагами и правами -
функцию
os.WriteFile,
которая записывает данные в файл целиком