func ReadFile(file string) ([]byte, error) {
	fd, err := openFile(file, os.O_RDONLY, 0)
	if err != nil {
		return nil, err
	}
	defer fd.Close()
	info, err := fd.Stat()
	if err != nil {
		return nil, err
	}
	return readData(fd, info)
}
////////////////////////////////////////////////////////////////////////////////// //
ReadFile read file with Direct IO without buffering data in page cache
(currently only Unix and Mac OS X is supported)
package directio
import (
	"io"
	"os"
	"sync"
	"unsafe"
)
var blockPool = sync.Pool{
	New: func() interface{} {
		return make([]byte, BLOCK_SIZE+ALIGN_SIZE)
	},
}