diff options
author | Rob Pike <r@golang.org> | 2008-09-11 13:40:17 -0700 |
---|---|---|
committer | Rob Pike <r@golang.org> | 2008-09-11 13:40:17 -0700 |
commit | c42859e2d5b5cc53b43d6dabc27a782865230fc9 (patch) | |
tree | 63ad4f7c84d3162b515c764370c4025bc20dc823 /src/syscall/syscall.go | |
parent | 9c2e6bf6cdb8d8c8483dc01f932d9575ace72e96 (diff) | |
download | golang-c42859e2d5b5cc53b43d6dabc27a782865230fc9.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.go | 14 |
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 +} |