def read(self, size=-1):
"""
Read at most size bytes from the file.
:param buflen: length of read buffer. If less than 0, then whole
file is read. Default is -1.
:returns: buffer of 'size' length
"""
if size < 0:
size = self.fgetsize()
rbuf = ctypes.create_string_buffer(size)
ret = api.glfs_read(self.fd, rbuf, size, 0)
if ret > 0:
# In python 2.x, read() always returns a string. It's really upto
# the consumer to decode this string into whatever encoding it was
# written with.
return rbuf.value[:ret]
elif ret < 0:
err = ctypes.get_errno()
raise OSError(err, os.strerror(err))
评论列表
文章目录