# File lib/fuse/rfusefs-fuse.rb, line 296
      def read(ctx,path,size,offset,ffi)
        return wrap_context(ctx,__method__,path,size,offset,ffi) if ctx

        fh = ffi.fh

        if fh.raw
          if FuseFS::RFUSEFS_COMPATIBILITY
            return @root.raw_read(path,offset,size,fh.raw)
          else
            return @root.raw_read(path,offset,size)
          end
        elsif offset >= 0
          return fh.read(offset,size)
        else
          #TODO: Raise? what does a negative offset mean
          return ""
        end
      rescue EOFError
        return ""
      end