mirror of https://github.com/perkeep/perkeep.git
35 lines
1007 B
Go
35 lines
1007 B
Go
// Copyright (c) 2013 jnml. All rights reserved.
|
|
// Use of this source code is governed by a BSD-style
|
|
// license that can be found in the LICENSE file.
|
|
|
|
package fileutil
|
|
|
|
import (
|
|
"io"
|
|
"os"
|
|
"syscall"
|
|
)
|
|
|
|
// PunchHole deallocates space inside a file in the byte range starting at
|
|
// offset and continuing for len bytes. Not supported on Windows.
|
|
func PunchHole(f *os.File, off, len int64) error {
|
|
return nil
|
|
}
|
|
|
|
// Fadvise predeclares an access pattern for file data. See also 'man 2
|
|
// posix_fadvise'. Not supported on Windows.
|
|
func Fadvise(f *os.File, off, len int64, advice FadviseAdvice) error {
|
|
return nil
|
|
}
|
|
|
|
// IsEOF reports whether err is an EOF condition.
|
|
func IsEOF(err error) bool {
|
|
if err == io.EOF {
|
|
return true
|
|
}
|
|
|
|
// http://social.technet.microsoft.com/Forums/windowsserver/en-US/1a16311b-c625-46cf-830b-6a26af488435/how-to-solve-error-38-0x26-errorhandleeof-using-fsctlgetretrievalpointers
|
|
x, ok := err.(*os.PathError)
|
|
return ok && x.Op == "read" && x.Err.(syscall.Errno) == 0x26
|
|
}
|