diff options
Diffstat (limited to 'src/pkg/io/utils.go')
| -rw-r--r-- | src/pkg/io/utils.go | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/src/pkg/io/utils.go b/src/pkg/io/utils.go index 96d23bcf0..f3331a20c 100644 --- a/src/pkg/io/utils.go +++ b/src/pkg/io/utils.go @@ -28,3 +28,19 @@ func ReadFile(filename string) ([]byte, os.Error) { defer f.Close(); return ReadAll(f); } + +// WriteFile writes data to a file named by filename. +// If the file does not exist, WriteFile creates it with permissions perm. +// +func WriteFile(filename string, data []byte, perm int) os.Error { + f, err := os.Open(filename, os.O_WRONLY | os.O_CREAT | os.O_TRUNC, perm); + if err != nil { + return err; + } + n, err := f.Write(data); + if err == nil && n < len(data) { + err = ErrShortWrite; + } + f.Close(); + return err; +} |
