3#if ROO_IO_FS_SUPPORT_POSIX
11PosixFileInputStream::PosixFileInputStream(
Status error)
14PosixFileInputStream::PosixFileInputStream(std::shared_ptr<MountImpl> mount,
16 : mount_(
std::move(mount)),
20PosixFileInputStream::~PosixFileInputStream() {
21 if (file_ !=
nullptr) ::fclose(file_);
24size_t PosixFileInputStream::read(
byte* buf,
size_t count) {
25 if (status_ != kOk)
return 0;
26 int result = fread(buf, 1, count, file_);
27 if (result > 0)
return result;
28 if (ferror(file_) != 0) {
40 if (feof(file_) != 0) {
49void PosixFileInputStream::seek(uint64_t offset) {
50 if (status_ != kOk && status_ != kEndOfStream)
return;
51 if (::fseek(file_, offset, SEEK_SET) == 0) {
68void PosixFileInputStream::skip(uint64_t count) {
69 if (status_ != kOk)
return;
70 if (::fseek(file_, count, SEEK_CUR) == 0) {
88uint64_t PosixFileInputStream::size() {
89 if (status_ != kOk && status_ != kEndOfStream)
return 0;
91 if (::fstat(fileno(file_), &st) != 0) {
99bool PosixFileInputStream::isOpen()
const {
103void PosixFileInputStream::close() {
105 if (status_ != kOk && status_ != kEndOfStream)
return;
106 if (::fclose(file_) == 0) {
roo::basic_string_view< CharT, Traits > basic_string_view