123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- /* 7zFile.h -- File IO
- 2008-11-22 : Igor Pavlov : Public domain */
- #ifndef __7Z_FILE_H
- #define __7Z_FILE_H
- #ifdef _WIN32
- #define USE_WINDOWS_FILE
- #endif
- #ifdef USE_WINDOWS_FILE
- #include <windows.h>
- #else
- #include <stdio.h>
- #endif
- #include "Types.h"
- /* ---------- File ---------- */
- typedef struct
- {
- #ifdef USE_WINDOWS_FILE
- HANDLE handle;
- #else
- FILE *file;
- #endif
- } CSzFile;
- void File_Construct(CSzFile *p);
- WRes InFile_Open(CSzFile *p, const char *name);
- WRes OutFile_Open(CSzFile *p, const char *name);
- WRes File_Close(CSzFile *p);
- /* reads max(*size, remain file's size) bytes */
- WRes File_Read(CSzFile *p, void *data, size_t *size);
- /* writes *size bytes */
- WRes File_Write(CSzFile *p, const void *data, size_t *size);
- WRes File_Seek(CSzFile *p, Int64 *pos, ESzSeek origin);
- WRes File_GetLength(CSzFile *p, UInt64 *length);
- /* ---------- FileInStream ---------- */
- typedef struct
- {
- ISeqInStream s;
- CSzFile file;
- } CFileSeqInStream;
- void FileSeqInStream_CreateVTable(CFileSeqInStream *p);
- typedef struct
- {
- ISeekInStream s;
- CSzFile file;
- } CFileInStream;
- void FileInStream_CreateVTable(CFileInStream *p);
- typedef struct
- {
- ISeqOutStream s;
- CSzFile file;
- } CFileOutStream;
- void FileOutStream_CreateVTable(CFileOutStream *p);
- #endif
|