12 bool CFileBase::OpenBinary(const char *name
, int flags
)
18 _handle
= ::open(name
, flags
, 0666);
22 bool CFileBase::Close()
26 if (close(_handle
) != 0)
32 bool CFileBase::GetLength(UInt64
&length
) const
34 off_t curPos
= Seek(0, SEEK_CUR
);
35 off_t lengthTemp
= Seek(0, SEEK_END
);
36 Seek(curPos
, SEEK_SET
);
37 length
= (UInt64
)lengthTemp
;
41 off_t
CFileBase::Seek(off_t distanceToMove
, int moveMethod
) const
43 return ::lseek(_handle
, distanceToMove
, moveMethod
);
46 /////////////////////////
49 bool CInFile::Open(const char *name
)
51 return CFileBase::OpenBinary(name
, O_RDONLY
);
54 ssize_t
CInFile::Read(void *data
, size_t size
)
56 return read(_handle
, data
, size
);
59 /////////////////////////
62 bool COutFile::Create(const char *name
, bool createAlways
)
67 _handle
= ::creat(name
, 0666);
70 return OpenBinary(name
, O_CREAT
| O_EXCL
| O_WRONLY
);
73 ssize_t
COutFile::Write(const void *data
, size_t size
)
75 return write(_handle
, data
, size
);