Implemented HelloFS.ReadFile.
parent
4ef670f8b7
commit
fe2f872382
|
@ -4,7 +4,9 @@
|
||||||
package samples
|
package samples
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"io"
|
||||||
"os"
|
"os"
|
||||||
|
"strings"
|
||||||
|
|
||||||
"github.com/jacobsa/fuse"
|
"github.com/jacobsa/fuse"
|
||||||
"github.com/jacobsa/fuse/fuseutil"
|
"github.com/jacobsa/fuse/fuseutil"
|
||||||
|
@ -243,3 +245,23 @@ func (fs *HelloFS) OpenFile(
|
||||||
resp = &fuse.OpenFileResponse{}
|
resp = &fuse.OpenFileResponse{}
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (fs *HelloFS) ReadFile(
|
||||||
|
ctx context.Context,
|
||||||
|
req *fuse.ReadFileRequest) (resp *fuse.ReadFileResponse, err error) {
|
||||||
|
resp = &fuse.ReadFileResponse{}
|
||||||
|
|
||||||
|
// Let io.ReaderAt deal with the semantics.
|
||||||
|
reader := strings.NewReader("Hello, world!")
|
||||||
|
|
||||||
|
resp.Data = make([]byte, req.Size)
|
||||||
|
n, err := reader.ReadAt(resp.Data, req.Offset)
|
||||||
|
resp.Data = resp.Data[:n]
|
||||||
|
|
||||||
|
// Special case: FUSE doesn't expect us to return io.EOF.
|
||||||
|
if err == io.EOF {
|
||||||
|
err = nil
|
||||||
|
}
|
||||||
|
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue