summaryrefslogtreecommitdiff
path: root/src/lib/syscall/file_linux.go
diff options
context:
space:
mode:
authorRob Pike <r@golang.org>2009-02-06 17:54:26 -0800
committerRob Pike <r@golang.org>2009-02-06 17:54:26 -0800
commitaf453527aec6688b75e3ae72de78c76920de8569 (patch)
tree2c4197b8de65fcc683cb84de39fb2de011f08a9f /src/lib/syscall/file_linux.go
parent3669adf2ff20dc664fd2f4d8cf77063d92dbc09a (diff)
downloadgolang-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.go40
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;
}