Source File
file.go
Belonging Package
os
package os
import (
)
O_APPEND int = syscall.O_APPEND // append data to the file when writing.
O_CREATE int = syscall.O_CREAT // create a new file if none exists.
O_EXCL int = syscall.O_EXCL // used with O_CREATE, file must not exist.
O_SYNC int = syscall.O_SYNC // open for synchronous I/O.
O_TRUNC int = syscall.O_TRUNC // truncate regular writable file when opened.
)
func ( *File) ( io.Reader) ( int64, error) {
if := .checkValid("write"); != nil {
return 0,
}
, , := .readFrom()
if ! {
return genericReadFrom(, ) // without wrapping
}
return , .wrapErr("write", )
}
func ( *File, io.Reader) (int64, error) {
return io.Copy(onlyWriter{}, )
}
type onlyWriter struct {
io.Writer
}
func ( *File) ( []byte) ( int, error) {
if := .checkValid("write"); != nil {
return 0,
}
, := .write()
if < 0 {
= 0
}
if != len() {
= io.ErrShortWrite
}
epipecheck(, )
if != nil {
= .wrapErr("write", )
}
return ,
}
var errWriteAtInAppendMode = errors.New("os: invalid use of WriteAt on file opened with O_APPEND")
func ( *File) ( []byte, int64) ( int, error) {
if := .checkValid("write"); != nil {
return 0,
}
if .appendMode {
return 0, errWriteAtInAppendMode
}
if < 0 {
return 0, &PathError{Op: "writeat", Path: .name, Err: errors.New("negative offset")}
}
for len() > 0 {
, := .pwrite(, )
if != nil {
= .wrapErr("write", )
break
}
+=
= [:]
+= int64()
}
return
}
if !supportsCreateWithStickyBit && &ModeSticky != 0 {
= setStickyBit()
if != nil {
Remove()
return
}
}
return nil
}
func () (string, error) {
var string
switch runtime.GOOS {
case "windows":
= Getenv("LocalAppData")
if == "" {
return "", errors.New("%LocalAppData% is not defined")
}
case "darwin", "ios":
= Getenv("HOME")
if == "" {
return "", errors.New("$HOME is not defined")
}
+= "/Library/Caches"
case "plan9":
= Getenv("home")
if == "" {
return "", errors.New("$home is not defined")
}
+= "/lib/cache"
default: // Unix
= Getenv("XDG_CACHE_HOME")
if == "" {
= Getenv("HOME")
if == "" {
return "", errors.New("neither $XDG_CACHE_HOME nor $HOME are defined")
}
+= "/.cache"
}
}
return , nil
}
func () (string, error) {
var string
switch runtime.GOOS {
case "windows":
= Getenv("AppData")
if == "" {
return "", errors.New("%AppData% is not defined")
}
case "darwin", "ios":
= Getenv("HOME")
if == "" {
return "", errors.New("$HOME is not defined")
}
+= "/Library/Application Support"
case "plan9":
= Getenv("home")
if == "" {
return "", errors.New("$home is not defined")
}
+= "/lib"
default: // Unix
= Getenv("XDG_CONFIG_HOME")
if == "" {
= Getenv("HOME")
if == "" {
return "", errors.New("neither $XDG_CONFIG_HOME nor $HOME are defined")
}
+= "/.config"
}
}
return , nil
}
func ( *File) ( time.Time) error {
return .setDeadline()
}
func ( *File) ( time.Time) error {
return .setReadDeadline()
}
func ( *File) ( time.Time) error {
return .setWriteDeadline()
}
func ( *File) () (syscall.RawConn, error) {
if := .checkValid("SyscallConn"); != nil {
return nil,
}
return newRawConn()
}
func ( string) fs.FS {
return dirFS()
}
func (, string) bool {
for := 0; < len(); ++ {
for := 0; < len(); ++ {
if [] == [] {
return true
}
}
}
return false
}
type dirFS string
func ( dirFS) ( string) (fs.File, error) {
if !fs.ValidPath() || runtime.GOOS == "windows" && containsAny(, `\:`) {
return nil, &PathError{Op: "open", Path: , Err: ErrInvalid}
}
, := Open(string() + "/" + )
if != nil {
return nil, // nil fs.File
}
return , nil
}
![]() |
The pages are generated with Golds v0.3.2-preview. (GOOS=darwin GOARCH=amd64) Golds is a Go 101 project developed by Tapir Liu. PR and bug reports are welcome and can be submitted to the issue list. Please follow @Go100and1 (reachable from the left QR code) to get the latest news of Golds. |