summaryrefslogtreecommitdiff
path: root/src/syscall/syscall.go
diff options
context:
space:
mode:
authorRob Pike <r@golang.org>2008-09-11 13:40:17 -0700
committerRob Pike <r@golang.org>2008-09-11 13:40:17 -0700
commitc3ae75b49dfeddcf941853aaf7330554a1fef964 (patch)
tree63ad4f7c84d3162b515c764370c4025bc20dc823 /src/syscall/syscall.go
parent4b4588d46ecf0636f8c655c7f9b6353bd3f65840 (diff)
downloadgo-c3ae75b49dfeddcf941853aaf7330554a1fef964.tar.gz
make syscall use strings for file names
tweak os to adjust move StringToBytes into syscall, at least for now this program still works: package main import os "os" func main() { os.Stdout.WriteString("hello, world\n"); a, b := os.NewFD(77).WriteString("no way"); os.Stdout.WriteString(b.String() + "\n"); } R=rsc DELTA=263 (59 added, 176 deleted, 28 changed) OCL=15153 CL=15153
Diffstat (limited to 'src/syscall/syscall.go')
-rw-r--r--src/syscall/syscall.go14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/syscall/syscall.go b/src/syscall/syscall.go
index 7f31c11c9..384be2429 100644
--- a/src/syscall/syscall.go
+++ b/src/syscall/syscall.go
@@ -11,3 +11,17 @@ package syscall
export func Syscall(trap int64, a1, a2, a3 int64) (r1, r2, err int64);
export func AddrToInt(b *byte) int64;
+/*
+ * Used to convert file names to byte arrays for passing to kernel,
+ * but useful elsewhere too.
+ */
+export func StringToBytes(b *[]byte, s string) bool {
+ if len(s) >= len(b) {
+ return false
+ }
+ for i := 0; i < len(s); i++ {
+ b[i] = s[i]
+ }
+ b[len(s)] = '\000'; // not necessary - memory is zeroed - but be explicit
+ return true
+}