System independent counterparts of FILE* related functions from Clib.
You should not use C standard I/O functions in your modules. The reason: Each module compiled with Borland (and statically linked to Borland's library) will host a copy of the FILE * information.
So, if you open a file in the plugin and pass the handle to the kernel, the kernel will not be able to use it.
If you really need to use the standard functions, define USE_STANDARD_FILE_FUNCTIONS. In this case do not mix them with q... functions.
|
idaman THREAD_SAFE ssize_t ida_export | qgetline (qstring *buf, FILE *fp) |
| Read line from file (the newline is removed from the output buffer) More...
|
|
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 | qmove (const char *oldfname, const char *newfname, uint32 flags) |
| Move a file - more powerful version of qrename. More...
|
|
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. More...
|
|
idaman char *ida_export | qtmpdir (char *buf, size_t bufsize) |
| Get temporary directory name Returns absolute path.
|
|
idaman char *ida_export | qtmpnam (char *buf, size_t bufsize) |
| Get temporary file name. More...
|
|
|
The following functions work just like their counterparts from Clib, only they are safer, system independent, and they set qerrno (see get_qerrno()).
|
idaman THREAD_SAFE FILE *ida_export | qfopen (const char *file, const char *mode) |
|
idaman THREAD_SAFE ssize_t ida_export | qfread (FILE *fp, void *buf, size_t n) |
|
idaman THREAD_SAFE ssize_t ida_export | qfwrite (FILE *fp, const void *buf, size_t n) |
|
idaman THREAD_SAFE qoff64_t ida_export | qftell (FILE *fp) |
|
idaman THREAD_SAFE int ida_export | qfseek (FILE *fp, qoff64_t offset, int whence) |
|
idaman THREAD_SAFE int ida_export | qfclose (FILE *fp) |
|
idaman THREAD_SAFE int ida_export | qflush (FILE *fp) |
|
idaman THREAD_SAFE int ida_export | qfputc (int chr, FILE *fp) |
|
idaman THREAD_SAFE int ida_export | qfgetc (FILE *fp) |
|
idaman THREAD_SAFE char *ida_export | qfgets (char *s, size_t len, FILE *fp) |
|
idaman THREAD_SAFE int ida_export | qfputs (const char *s, FILE *fp) |
|
idaman FILE *ida_export | qtmpfile (void) |
|
idaman THREAD_SAFE int ida_export | qunlink (const char *fname) |
|
idaman THREAD_SAFE int ida_export | qaccess (const char *fname, int mode) |
|
idaman THREAD_SAFE char *ida_export | qgets (char *line, size_t linesize) |
|
idaman THREAD_SAFE uint64 ida_export | qfsize (FILE *fp) |
|
idaman THREAD_SAFE int ida_export | qvfprintf (FILE *fp, const char *format, va_list va) |
|
idaman THREAD_SAFE int ida_export | qvprintf (const char *format, va_list va) |
|
idaman THREAD_SAFE int ida_export | qveprintf (const char *format, va_list va) |
|
idaman THREAD_SAFE int ida_export | qvfscanf (FILE *fp, const char *format, va_list va) |
|
THREAD_SAFE int | qfprintf (FILE *fp, const char *format,...) |
|
THREAD_SAFE int | qprintf (const char *format,...) |
|
THREAD_SAFE int | qeprintf (const char *format,...) |
|
THREAD_SAFE int | qfscanf (FILE *fp, const char *format,...) |
|
|
Add-ins for 2..32 byte read/writes.
- Parameters
-
fp | pointer to file |
res | value read from file |
size | size of value in bytes (1..32) |
mostfirst | is MSB first? (0/1) |
- Return values
-
0 | All these functions return 0 on success |
|
#define | DEF_FREADBYTES(read, write, type, size) |
|
idaman THREAD_SAFE int ida_export | freadbytes (FILE *fp, void *res, int size, int mostfirst) |
|
idaman THREAD_SAFE int ida_export | fwritebytes (FILE *fp, const void *l, int size, int mostfirst) |
|
int | fread2bytes (FILE *fp, int16 *res, bool mostfirst) |
|
int | fwrite2bytes (FILE *fp, const int16 *res, bool mostfirst) |
|
int | fread2bytes (FILE *fp, uint16 *res, bool mostfirst) |
|
int | fwrite2bytes (FILE *fp, const uint16 *res, bool mostfirst) |
|
int | fread4bytes (FILE *fp, int32 *res, bool mostfirst) |
|
int | fwrite4bytes (FILE *fp, const int32 *res, bool mostfirst) |
|
int | fread4bytes (FILE *fp, uint32 *res, bool mostfirst) |
|
int | fwrite4bytes (FILE *fp, const uint32 *res, bool mostfirst) |
|
int | fread8bytes (FILE *fp, int64 *res, bool mostfirst) |
|
int | fwrite8bytes (FILE *fp, const int64 *res, bool mostfirst) |
|
int | fread8bytes (FILE *fp, uint64 *res, bool mostfirst) |
|
int | fwrite8bytes (FILE *fp, const uint64 *res, bool mostfirst) |
|