FILE.h 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. #ifndef FILE_IO_HEADER
  2. #define FILE_IO_HEADER
  3. // this header needs
  4. #include <stdio.h>
  5. #include "../ARRAY.h"
  6. #include "../CHAR/CHAR_ARR/STRING/STRING.h"
  7. #include "../NUMBER/NUMBER.h"
  8. // file paths will be treated as UTF8
  9. #define FILE_PATH_ENC CHAR_ENC_UTF8
  10. // wrappers to some stdio.h functions
  11. FILE * def_fopen(char * fpath, char * open_mode);
  12. smax def_fgetc(FILE * fp);
  13. void def_fseek(FILE * fp, smax offset, smax whence);
  14. void def_fputc(smax ch, FILE * fp);
  15. void def_fclose(FILE * fp);
  16. // path string related functions
  17. char * get_file_dir(char * fpath, char * out_file_dir);
  18. char * get_file_ext(char * fpath);
  19. // functions to do usual file operations
  20. umax get_file_size(char * fpath);
  21. void * get_fbytes(char * fpath, umax pos, umax size);
  22. void * load_file_mem(char * fpath);
  23. // functions to deal with file data loaded in memory
  24. umax dump_mem_file(char * fpath, umax file_size, void * file_data);
  25. extern void * insert_bytes(void * target, umax tsize, void * ins_pos, void * src, umax ssize);
  26. extern umax remove_bytes(void * target, umax tsize, void * rm_pos, umax rm_size);
  27. #include "FILE.c"
  28. #endif // FILE_IO_HEADER