From 0ba6e1dc3cf14ba32446f2877097a18f2448f58f Mon Sep 17 00:00:00 2001 From: Russ Cox Date: Fri, 15 May 2009 14:11:24 -0700 Subject: os: MkdirAll, RemoveAll, Chmod, Chown, Truncate, Getgroups. Getuid, etc drop their errors -- they cannot error R=r DELTA=605 (547 added, 12 deleted, 46 changed) OCL=28919 CL=28929 --- src/lib/syscall/file_linux.go | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) (limited to 'src/lib/syscall/file_linux.go') diff --git a/src/lib/syscall/file_linux.go b/src/lib/syscall/file_linux.go index c7299f839..f6b6ea7e6 100644 --- a/src/lib/syscall/file_linux.go +++ b/src/lib/syscall/file_linux.go @@ -131,3 +131,43 @@ func Readlink(path string, buf *byte, nbytes int64) (ret int64, errno int64) { r1, r2, err := Syscall(SYS_READLINK, int64(uintptr(unsafe.Pointer(pathbuf))), int64(uintptr(unsafe.Pointer(buf))), nbytes); return r1, err; } + +func Chmod(name string, mode int64) (ret, errno int64) { + namebuf := StringBytePtr(name); + r1, r2, err := Syscall(SYS_CHMOD, int64(uintptr(unsafe.Pointer(namebuf))), mode, 0); + return r1, err; +} + +func Fchmod(fd, mode int64) (ret, errno int64) { + r1, r2, err := Syscall(SYS_FCHMOD, fd, mode, 0); + return r1, err; +} + +func Chown(name string, uid, gid int64) (ret, errno int64) { + namebuf := StringBytePtr(name); + r1, r2, err := Syscall(SYS_CHOWN, int64(uintptr(unsafe.Pointer(namebuf))), uid, gid); + return r1, err; +} + +func Lchown(name string, uid, gid int64) (ret, errno int64) { + namebuf := StringBytePtr(name); + r1, r2, err := Syscall(SYS_LCHOWN, int64(uintptr(unsafe.Pointer(namebuf))), uid, gid); + return r1, err; +} + +func Fchown(fd, uid, gid int64) (ret, errno int64) { + r1, r2, err := Syscall(SYS_FCHOWN, fd, uid, gid); + return r1, err; +} + +func Truncate(name string, length int64) (ret, errno int64) { + namebuf := StringBytePtr(name); + r1, r2, err := Syscall(SYS_TRUNCATE, int64(uintptr(unsafe.Pointer(namebuf))), length, 0); + return r1, err; +} + +func Ftruncate(fd, length int64) (ret, errno int64) { + r1, r2, err := Syscall(SYS_FTRUNCATE, fd, length, 0); + return r1, err; +} + -- cgit v1.2.3