30 #define __UPX_FILE_H 1 45 static void chmod(
const char *name,
int mode);
46 static void rename(
const char *old_,
const char *new_);
47 static void unlink(
const char *name);
58 virtual void closex();
59 virtual bool isOpen()
const {
return _fd >= 0; }
60 int getFd()
const {
return _fd; }
61 const char *getName()
const {
return _name; }
62 virtual off_t st_size()
const;
63 virtual void set_extent(off_t offset, off_t length);
67 virtual int read(
void *buf,
int len);
68 virtual int readx(
void *buf,
int len);
69 virtual void write(
const void *buf,
int len);
70 virtual off_t seek(upx_int64_t off,
int whence);
71 virtual off_t tell()
const;
96 virtual void sopen(
const char *name,
int flags,
int shflags);
97 virtual void open(
const char *name,
int flags)
99 sopen(name, flags, -1);
102 virtual int read(
void *buf,
int len);
103 virtual int readx(
void *buf,
int len);
104 virtual int read(
MemBuffer *buf,
int len);
105 virtual int readx(
MemBuffer *buf,
int len);
106 virtual int read(
MemBuffer &buf,
int len);
107 virtual int readx(
MemBuffer &buf,
int len);
109 virtual off_t seek(upx_int64_t off,
int whence);
110 virtual off_t tell()
const;
111 virtual off_t st_size_orig()
const;
128 virtual void sopen(
const char *name,
int flags,
int shflags,
int mode);
129 virtual void open(
const char *name,
int flags,
int mode)
131 sopen(name, flags, -1, mode);
133 virtual bool openStdout(
int flags=0,
bool force=
false);
135 virtual void write(
const void *buf,
int len);
136 virtual void write(
const MemBuffer *buf,
int len);
137 virtual void write(
const MemBuffer &buf,
int len);
138 virtual void set_extent(off_t offset, off_t length);
139 virtual off_t unset_extent();
141 off_t getBytesWritten()
const {
return bytes_written; }
142 virtual off_t st_size()
const;
145 virtual off_t seek(upx_int64_t off,
int whence);
146 virtual void rewrite(
const void *buf,
int len);
149 static void dump(
const char *name,
const void *buf,
int len,
int flags=-1);
161 class MemoryOutputFile :
public FileBase 166 virtual ~MemoryOutputFile() { b = NULL; }
168 virtual bool close() { b = NULL;
return true; }
169 virtual bool isOpen()
const {
return b != NULL; }
170 virtual void open(
void *buf,
unsigned size)
171 { b = (upx_bytep) buf; b_size = size; }
173 virtual void write(
const void *buf,
int len);
175 off_t getBytesWritten()
const {
return bytes_written; }