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 bool CInFile::OpenShared(const char *name, bool)
59 ssize_t CInFile::Read(void *data, size_t size)
61 return read(_handle, data, size);
64 /////////////////////////
67 bool COutFile::Create(const char *name, bool createAlways)
72 _handle = ::creat(name, 0666);
75 return OpenBinary(name, O_CREAT | O_EXCL | O_WRONLY);
78 bool COutFile::Open(const char *name, DWORD creationDisposition)
80 return Create(name, false);
83 ssize_t COutFile::Write(const void *data, size_t size)
85 return write(_handle, data, size);