diff options
author | Rob Pike <r@golang.org> | 2009-02-06 17:54:26 -0800 |
---|---|---|
committer | Rob Pike <r@golang.org> | 2009-02-06 17:54:26 -0800 |
commit | af453527aec6688b75e3ae72de78c76920de8569 (patch) | |
tree | 2c4197b8de65fcc683cb84de39fb2de011f08a9f /src/lib/syscall/file_linux.go | |
parent | 3669adf2ff20dc664fd2f4d8cf77063d92dbc09a (diff) | |
download | golang-af453527aec6688b75e3ae72de78c76920de8569.tar.gz |
portable stat for os
add name to os.FD
clean up some interfaces
R=rsc
DELTA=318 (231 added, 44 deleted, 43 changed)
OCL=24624
CL=24627
Diffstat (limited to 'src/lib/syscall/file_linux.go')
-rw-r--r-- | src/lib/syscall/file_linux.go | 40 |
1 files changed, 13 insertions, 27 deletions
diff --git a/src/lib/syscall/file_linux.go b/src/lib/syscall/file_linux.go index ef30faac9..52c1e9040 100644 --- a/src/lib/syscall/file_linux.go +++ b/src/lib/syscall/file_linux.go @@ -14,20 +14,14 @@ import ( const nameBufsize = 512 func Open(name string, mode int64, perm int64) (ret int64, errno int64) { - var namebuf [nameBufsize]byte; - if !StringToBytes(namebuf, name) { - return -1, ENAMETOOLONG - } - r1, r2, err := Syscall(SYS_OPEN, int64(uintptr(unsafe.Pointer(&namebuf[0]))), mode, perm); + namebuf := StringBytePtr(name); + r1, r2, err := Syscall(SYS_OPEN, int64(uintptr(unsafe.Pointer(namebuf))), mode, perm); return r1, err; } func Creat(name string, perm int64) (ret int64, errno int64) { - var namebuf [nameBufsize]byte; - if !StringToBytes(namebuf, name) { - return -1, ENAMETOOLONG - } - r1, r2, err := Syscall(SYS_OPEN, int64(uintptr(unsafe.Pointer(&namebuf[0]))), O_CREAT|O_WRONLY|O_TRUNC, perm); + namebuf := StringBytePtr(name); + r1, r2, err := Syscall(SYS_OPEN, int64(uintptr(unsafe.Pointer(namebuf))), O_CREAT|O_WRONLY|O_TRUNC, perm); return r1, err; } @@ -58,16 +52,14 @@ func Pipe(fds *[2]int64) (ret int64, errno int64) { } func Stat(name string, buf *Stat_t) (ret int64, errno int64) { - var namebuf [nameBufsize]byte; - if !StringToBytes(namebuf, name) { - return -1, ENAMETOOLONG - } - r1, r2, err := Syscall(SYS_STAT, int64(uintptr(unsafe.Pointer(&namebuf[0]))), int64(uintptr(unsafe.Pointer(buf))), 0); + namebuf := StringBytePtr(name); + r1, r2, err := Syscall(SYS_STAT, int64(uintptr(unsafe.Pointer(namebuf))), int64(uintptr(unsafe.Pointer(buf))), 0); return r1, err; } -func Lstat(name *byte, buf *Stat_t) (ret int64, errno int64) { - r1, r2, err := Syscall(SYS_LSTAT, int64(uintptr(unsafe.Pointer(name))), int64(uintptr(unsafe.Pointer(buf))), 0); +func Lstat(name string, buf *Stat_t) (ret int64, errno int64) { + namebuf := StringBytePtr(name); + r1, r2, err := Syscall(SYS_LSTAT, int64(uintptr(unsafe.Pointer(namebuf))), int64(uintptr(unsafe.Pointer(buf))), 0); return r1, err; } @@ -77,11 +69,8 @@ func Fstat(fd int64, buf *Stat_t) (ret int64, errno int64) { } func Unlink(name string) (ret int64, errno int64) { - var namebuf [nameBufsize]byte; - if !StringToBytes(namebuf, name) { - return -1, ENAMETOOLONG - } - r1, r2, err := Syscall(SYS_UNLINK, int64(uintptr(unsafe.Pointer(&namebuf[0]))), 0, 0); + namebuf := StringBytePtr(name); + r1, r2, err := Syscall(SYS_UNLINK, int64(uintptr(unsafe.Pointer(namebuf))), 0, 0); return r1, err; } @@ -91,11 +80,8 @@ func Fcntl(fd, cmd, arg int64) (ret int64, errno int64) { } func Mkdir(name string, perm int64) (ret int64, errno int64) { - var namebuf [nameBufsize]byte; - if !StringToBytes(namebuf, name) { - return -1, ENAMETOOLONG - } - r1, r2, err := Syscall(SYS_MKDIR, int64(uintptr(unsafe.Pointer(&namebuf[0]))), perm, 0); + namebuf := StringBytePtr(name); + r1, r2, err := Syscall(SYS_MKDIR, int64(uintptr(unsafe.Pointer(namebuf))), perm, 0); return r1, err; } |