30#if !defined(USE_STANDARD_FILE_FUNCTIONS) && !defined(__CODE_CHECKER__)
36#define stdin dont_use_stdin
37#define stdout dont_use_stdout
38#define stderr dont_use_stderr
39#define fopen dont_use_fopen
40#define fread dont_use_fread
41#define fwrite dont_use_fwrite
42#define ftell dont_use_ftell
43#define fseek dont_use_fseek
44#define fclose dont_use_fclose
45#define fflush dont_use_fflush
46#define fputc dont_use_fputc
47#define fgetc dont_use_fgetc
48#define fgets dont_use_fgets
49#define fputs dont_use_fputs
50#define vfprintf dont_use_vfprintf
51#define vfscanf dont_use_vfscanf
52#define fprintf dont_use_fprintf
53#define fscanf dont_use_fscanf
61idaman THREAD_SAFE FILE *ida_export
qfopen(
const char *file,
const char *mode);
63idaman THREAD_SAFE
ssize_t ida_export
qfwrite(FILE *fp,
const void *buf,
size_t n);
64idaman THREAD_SAFE qoff64_t ida_export
qftell(FILE *fp);
65idaman THREAD_SAFE
int ida_export
qfseek(FILE *fp, qoff64_t offset,
int whence);
66idaman THREAD_SAFE
int ida_export
qfclose(FILE *fp);
67idaman THREAD_SAFE
int ida_export
qflush(FILE *fp);
68idaman THREAD_SAFE
int ida_export
qfputc(
int chr, FILE *fp);
69idaman THREAD_SAFE
int ida_export
qfgetc(FILE *fp);
70idaman THREAD_SAFE
char *ida_export
qfgets(
char *s,
size_t len, FILE *fp);
71idaman THREAD_SAFE
int ida_export
qfputs(
const char *s, FILE *fp);
73idaman THREAD_SAFE
int ida_export
qunlink(
const char *fname);
74idaman THREAD_SAFE
int ida_export
qaccess(
const char *fname,
int mode);
75idaman THREAD_SAFE
char *ida_export
qgets(
char *line,
size_t linesize);
78idaman THREAD_SAFE
AS_PRINTF(2, 0) int ida_export qvfprintf(FILE *fp, const
char *
format, va_list
va);
80idaman THREAD_SAFE
AS_PRINTF(1, 0)
int ida_export qveprintf(const
char *
format, va_list
va);
81idaman THREAD_SAFE
AS_SCANF(2, 0)
int ida_export qvfscanf(FILE *fp, const
char *
format, va_list
va);
102THREAD_SAFE
AS_PRINTF(1, 2) inline
int qeprintf(const
char *
format, ...)
132idaman THREAD_SAFE
int ida_export
qrename(
const char *oldfname,
const char *newfname);
138idaman THREAD_SAFE
int ida_export
qmove(
const char *oldfname,
const char *newfname,
uint32 flags);
162 bool overwrite =
true,
194idaman THREAD_SAFE
int ida_export
freadbytes(FILE *fp,
void *res,
int size,
int mostfirst);
195idaman THREAD_SAFE
int ida_export
fwritebytes(FILE *fp,
const void *l,
int size,
int mostfirst);
198#define DEF_FREADBYTES(read, write, type, size) \
199 inline THREAD_SAFE int read(FILE *fp, type *res, bool mostfirst) \
200 { return freadbytes(fp, res, size, mostfirst); } \
201 inline THREAD_SAFE int write(FILE *fp, const type *res, bool mostfirst) \
202 { return fwritebytes(fp, res, size, mostfirst); }
210#define fread2bytes(fp,v,mf) freadbytes(fp,v,2,mf)
211#define fwrite2bytes(fp,v,mf) fwritebytes(fp,v,2,mf)
212#define fread4bytes(fp,v,mf) freadbytes(fp,v,4,mf)
213#define fwrite4bytes(fp,v,mf) fwritebytes(fp,v,4,mf)
214#define fread8bytes(fp,v,mf) freadbytes(fp,v,8,mf)
215#define fwrite8bytes(fp,v,mf) fwritebytes(fp,v,8,mf)
219#if !defined(feof) || !defined(ferror)
idaman char *ida_export qtmpdir(char *buf, size_t bufsize)
Get temporary directory name Returns absolute path.
DEF_FREADBYTES(fread2bytes, fwrite2bytes, int16, 2) DEF_FREADBYTES(fread2bytes
fwrite8bytes
Definition fpro.h:208
idaman THREAD_SAFE int ida_export qrename(const char *oldfname, const char *newfname)
Rename a file: 'newname' may exist, and will be deleted.
idaman THREAD_SAFE int ida_export qcopyfile(const char *from, const char *to, bool overwrite=true, bool(idaapi *cb)(uint64 pos, uint64 total, void *ud)=nullptr, void *ud=nullptr, int flags=0)
Copy a file.
idaman THREAD_SAFE ssize_t ida_export qgetline(qstring *buf, FILE *fp)
Read line from file (the newline is removed from the output buffer)
idaman char *ida_export qtmpnam(char *buf, size_t bufsize)
Get temporary file name.
idaman THREAD_SAFE int ida_export fwritebytes(FILE *fp, const void *l, int size, int mostfirst)
fwrite4bytes
Definition fpro.h:206
idaman THREAD_SAFE int ida_export qmove(const char *oldfname, const char *newfname, uint32 flags)
Move a file - more powerful version of qrename.
@ QMOVE_CROSS_FS
Definition fpro.h:141
@ QMOVE_OVR_RO
Definition fpro.h:143
@ QMOVE_OVERWRITE
Definition fpro.h:142
fwrite2bytes
Definition fpro.h:204
idaman THREAD_SAFE int ida_export freadbytes(FILE *fp, void *res, int size, int mostfirst)
janitor_t< FILE * > file_janitor_t
File janitor: will close a file at destruction-time.
Definition fpro.h:180
idaman THREAD_SAFE va_list va
See qsscanf()
Definition err.h:21
idaman THREAD_SAFE AS_SCANF(2, 0) int ida_export qvfscanf(FILE *fp
idaman THREAD_SAFE ssize_t ida_export qfwrite(FILE *fp, const void *buf, size_t n)
idaman THREAD_SAFE char *ida_export qfgets(char *s, size_t len, FILE *fp)
idaman THREAD_SAFE qoff64_t ida_export qftell(FILE *fp)
idaman THREAD_SAFE uint64 ida_export qfsize(FILE *fp)
idaman THREAD_SAFE AS_PRINTF(2, 0) int ida_export qvfprintf(FILE *fp
idaman FILE *ida_export qtmpfile(void)
idaman THREAD_SAFE const char * format
Definition fpro.h:78
idaman THREAD_SAFE int ida_export qaccess(const char *fname, int mode)
idaman THREAD_SAFE AS_PRINTF(1, 0) void ida_export vqperror(const char *format
Print error message to stderr (analog of perror)
idaman THREAD_SAFE int ida_export qflush(FILE *fp)
idaman THREAD_SAFE int ida_export qfseek(FILE *fp, qoff64_t offset, int whence)
idaman THREAD_SAFE int ida_export qfputc(int chr, FILE *fp)
THREAD_SAFE const char va_start(va, format)
idaman THREAD_SAFE ssize_t ida_export qfread(FILE *fp, void *buf, size_t n)
idaman THREAD_SAFE char *ida_export qgets(char *line, size_t linesize)
idaman THREAD_SAFE int ida_export qfclose(FILE *fp)
idaman THREAD_SAFE FILE *ida_export qfopen(const char *file, const char *mode)
idaman THREAD_SAFE int ida_export qunlink(const char *fname)
int code
Definition fpro.h:88
idaman size_t n
Definition pro.h:997
idaman THREAD_SAFE int ida_export qfputs(const char *s, FILE *fp)
idaman THREAD_SAFE int ida_export qfgetc(FILE *fp)
idaman int64 pos
Definition kernwin.hpp:1365
idaman size_t len
Definition kernwin.hpp:1356
asize_t size
Definition kernwin.hpp:6339
unsigned __int64 uint64
Definition llong.hpp:13
__int64 int64
Definition llong.hpp:14
This is the first header included in the IDA project.
unsigned short uint16
unsigned 16 bit value
Definition pro.h:346
unsigned int uint32
unsigned 32 bit value
Definition pro.h:348
short int16
signed 16 bit value
Definition pro.h:345
int int32
signed 32 bit value
Definition pro.h:347
idaman size_t bufsize
Definition pro.h:600
ptrdiff_t ssize_t
Signed size_t - used to check for size overflows when the counter becomes negative.
Definition pro.h:381
_qstring< char > qstring
regular string
Definition pro.h:3694
Resource janitor to facilitate use of the RAII idiom.
Definition pro.h:4486
FILE *& resource
Definition pro.h:4491
~janitor_t()
Definition fpro.h:181