summaryrefslogtreecommitdiff
path: root/src/lib/syscall/file_linux.go
diff options
context:
space:
mode:
authorIan Lance Taylor <iant@golang.org>2009-05-13 10:16:46 -0700
committerIan Lance Taylor <iant@golang.org>2009-05-13 10:16:46 -0700
commitf190dbaf780d108d3d59e6f71fa66b0ed2648115 (patch)
tree4e7598284b339a85cf649300759ba40f8603c2cc /src/lib/syscall/file_linux.go
parentdffaa1646b8a5dc7ea787025afd6d9bf69ea14b5 (diff)
downloadgolang-f190dbaf780d108d3d59e6f71fa66b0ed2648115.tar.gz
Add os.Link, os.Symlink, os.Readlink.
R=r,rsc DELTA=161 (161 added, 0 deleted, 0 changed) OCL=28745 CL=28747
Diffstat (limited to 'src/lib/syscall/file_linux.go')
-rw-r--r--src/lib/syscall/file_linux.go20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/lib/syscall/file_linux.go b/src/lib/syscall/file_linux.go
index 80800b615..c7299f839 100644
--- a/src/lib/syscall/file_linux.go
+++ b/src/lib/syscall/file_linux.go
@@ -111,3 +111,23 @@ func Chdir(dir string) (ret int64, errno int64) {
r1, r2, err := Syscall(SYS_CHDIR, int64(uintptr(unsafe.Pointer(namebuf))), 0, 0);
return r1, err;
}
+
+func Link(oldpath, newpath string) (ret int64, errno int64) {
+ oldbuf := StringBytePtr(oldpath);
+ newbuf := StringBytePtr(newpath);
+ r1, r2, err := Syscall(SYS_LINK, int64(uintptr(unsafe.Pointer(oldbuf))), int64(uintptr(unsafe.Pointer(newbuf))), 0);
+ return r1, err;
+}
+
+func Symlink(oldpath, newpath string) (ret int64, errno int64) {
+ oldbuf := StringBytePtr(oldpath);
+ newbuf := StringBytePtr(newpath);
+ r1, r2, err := Syscall(SYS_SYMLINK, int64(uintptr(unsafe.Pointer(oldbuf))), int64(uintptr(unsafe.Pointer(newbuf))), 0);
+ return r1, err;
+}
+
+func Readlink(path string, buf *byte, nbytes int64) (ret int64, errno int64) {
+ pathbuf := StringBytePtr(path);
+ r1, r2, err := Syscall(SYS_READLINK, int64(uintptr(unsafe.Pointer(pathbuf))), int64(uintptr(unsafe.Pointer(buf))), nbytes);
+ return r1, err;
+}