mirror of
https://github.com/golang/go
synced 2024-11-25 12:37:56 -07:00
os/file Fix the op for errors returned from WriteAt, ReadFrom, ReadAt
This commit is contained in:
parent
776d8d387c
commit
16fa36802d
@ -125,7 +125,7 @@ func (f *File) Read(b []byte) (n int, err error) {
|
|||||||
// ReadAt always returns a non-nil error when n < len(b).
|
// ReadAt always returns a non-nil error when n < len(b).
|
||||||
// At end of file, that error is io.EOF.
|
// At end of file, that error is io.EOF.
|
||||||
func (f *File) ReadAt(b []byte, off int64) (n int, err error) {
|
func (f *File) ReadAt(b []byte, off int64) (n int, err error) {
|
||||||
if err := f.checkValid("read"); err != nil {
|
if err := f.checkValid("readat"); err != nil {
|
||||||
return 0, err
|
return 0, err
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -136,7 +136,7 @@ func (f *File) ReadAt(b []byte, off int64) (n int, err error) {
|
|||||||
for len(b) > 0 {
|
for len(b) > 0 {
|
||||||
m, e := f.pread(b, off)
|
m, e := f.pread(b, off)
|
||||||
if e != nil {
|
if e != nil {
|
||||||
err = f.wrapErr("read", e)
|
err = f.wrapErr("readat", e)
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
n += m
|
n += m
|
||||||
@ -148,14 +148,14 @@ func (f *File) ReadAt(b []byte, off int64) (n int, err error) {
|
|||||||
|
|
||||||
// ReadFrom implements io.ReaderFrom.
|
// ReadFrom implements io.ReaderFrom.
|
||||||
func (f *File) ReadFrom(r io.Reader) (n int64, err error) {
|
func (f *File) ReadFrom(r io.Reader) (n int64, err error) {
|
||||||
if err := f.checkValid("write"); err != nil {
|
if err := f.checkValid("readfrom"); err != nil {
|
||||||
return 0, err
|
return 0, err
|
||||||
}
|
}
|
||||||
n, handled, e := f.readFrom(r)
|
n, handled, e := f.readFrom(r)
|
||||||
if !handled {
|
if !handled {
|
||||||
return genericReadFrom(f, r) // without wrapping
|
return genericReadFrom(f, r) // without wrapping
|
||||||
}
|
}
|
||||||
return n, f.wrapErr("write", e)
|
return n, f.wrapErr("readfrom", e)
|
||||||
}
|
}
|
||||||
|
|
||||||
func genericReadFrom(f *File, r io.Reader) (int64, error) {
|
func genericReadFrom(f *File, r io.Reader) (int64, error) {
|
||||||
@ -198,7 +198,7 @@ var errWriteAtInAppendMode = errors.New("os: invalid use of WriteAt on file open
|
|||||||
//
|
//
|
||||||
// If file was opened with the O_APPEND flag, WriteAt returns an error.
|
// If file was opened with the O_APPEND flag, WriteAt returns an error.
|
||||||
func (f *File) WriteAt(b []byte, off int64) (n int, err error) {
|
func (f *File) WriteAt(b []byte, off int64) (n int, err error) {
|
||||||
if err := f.checkValid("write"); err != nil {
|
if err := f.checkValid("writeat"); err != nil {
|
||||||
return 0, err
|
return 0, err
|
||||||
}
|
}
|
||||||
if f.appendMode {
|
if f.appendMode {
|
||||||
@ -212,7 +212,7 @@ func (f *File) WriteAt(b []byte, off int64) (n int, err error) {
|
|||||||
for len(b) > 0 {
|
for len(b) > 0 {
|
||||||
m, e := f.pwrite(b, off)
|
m, e := f.pwrite(b, off)
|
||||||
if e != nil {
|
if e != nil {
|
||||||
err = f.wrapErr("write", e)
|
err = f.wrapErr("writeat", e)
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
n += m
|
n += m
|
||||||
|
Loading…
Reference in New Issue
Block a user