#include #pragma hdrstop #if !defined(FILESTRM_HPP) # include #endif #include #include #include //############################################################################# //########################### FileStream ################################ //############################################################################# //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // int FileStream::OpenImplementation( const char *file_name, Logical read_only ) { if (read_only) { return open(file_name, O_BINARY|O_RDONLY); } else { return open(file_name, O_BINARY|O_CREAT|O_TRUNC|O_WRONLY, S_IWRITE); } } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // void FileStream::CloseImplementation(int file_handle) { close(file_handle); } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // size_t FileStream::SeekImplementation( int file_handle, size_t where, Logical from_end ) { return lseek(file_handle, (long)where, (from_end) ? SEEK_END : SEEK_SET); } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // size_t FileStream::ReadImplementation( int file_handle, void *buffer, size_t length ) { return read(file_handle, buffer, length); } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // size_t FileStream::WriteImplementation( int file_handle, const void *buffer, size_t length ) { return write(file_handle, buffer, length); }