源码 WriteString unsafeheader.Slice


src\os\file.go

// WriteString is like Write, but writes the contents of string s rather than // a slice of bytes. func (f *File) WriteString(s string) (n int, err error) {     var b []byte     hdr := (*unsafeheader.Slice)(unsafe.Pointer(&b))     hdr.Data = (*unsafeheader.String)(unsafe.Pointer(&s)).Data     hdr.Cap = len(s)     hdr.Len = len(s)     return f.Write(b) } // Write writes len(b) bytes from b to the File. // It returns the number of bytes written and an error, if any. // Write returns a non-nil error when n != len(b). func (f *File) Write(b []byte) (n int, err error) {     if err := f.checkValid("write"); err != nil {         return 0, err     }     n, e := f.write(b)     if n < 0 {         n = 0     }     if n != len(b) {         err = io.ErrShortWrite     }
    epipecheck(f, e)
    if e != nil {         err = f.wrapErr("write", e)     }
    return n, err }