27 #define OPTK_FMODE_BINARY 0x0000
28 #define OPTK_FMODE_TEXT 0x0001
29 #define OPTK_FMODE_WTEXT 0x0002
30 #define OPTK_FMODE_U8TEXT 0x0008
31 #define OPTK_FMODE_U16TEXT 0x0010
32 #define OPTK_FMODE_U32TEXT 0x0020
38 typedef optk_int64_t optk_foffset_t;
39 #define OPTK_FOFFSET_MIN OPTK_INT64_MIN
40 #define OPTK_FOFFSET_MAX OPTK_INT64_MAX
41 #define OPTK_FOFFSET_SCNd OPTK_SCNd64
42 #define OPTK_FOFFSET_SCNi OPTK_SCNi64
43 #define OPTK_FOFFSET_SCNo OPTK_SCNo64
44 #define OPTK_FOFFSET_SCNx OPTK_SCNx64
45 #define OPTK_FOFFSET_PRId OPTK_PRId64
46 #define OPTK_FOFFSET_PRIi OPTK_PRIi64
47 #define OPTK_FOFFSET_PRIo OPTK_PRIo64
48 #define OPTK_FOFFSET_PRIx OPTK_PRIx64
49 #define OPTK_FOFFSET_PRIX OPTK_PRIX64
55 typedef optk_uint64_t optk_fsize_t;
56 #define OPTK_FSIZE_MAX OPTK_UINT64_MAX
57 #define OPTK_FSIZE_SCNu OPTK_SCNu64
58 #define OPTK_FSIZE_SCNo OPTK_SCNo64
59 #define OPTK_FSIZE_SCNx OPTK_SCNx64
60 #define OPTK_FSIZE_PRIu OPTK_PRIu64
61 #define OPTK_FSIZE_PRIo OPTK_PRIo64
62 #define OPTK_FSIZE_PRIx OPTK_PRIx64
63 #define OPTK_FSIZE_PRIX OPTK_PRIX64
70 optk_ftello(FILE *stream);
77 optk_fseeko(FILE *stream, optk_foffset_t offset,
int whence);
85 optk_fgetsize(FILE *stream, optk_fsize_t *size);
95 optk_fread_at(FILE *stream,
long offset,
int whence,
96 void *block,
size_t blocksize);
106 optk_fwrite_at(FILE *stream,
long offset,
int whence,
107 const void *block,
size_t blocksize);
116 optk_fsetmode(FILE *stream,
int fmode);
126 optk_ftty(FILE *stream);
135 optk_get_basename(
const char *path,
size_t *basename_len);
146 optk_get_dirname(
const char *path,
int with_dir_separator,
147 size_t *dirname_len);
159 optk_set_dirname(
char *buffer,
size_t bufsize,
const char *path,
160 const char *new_dirname);
173 optk_get_extname(
const char *path,
int with_ext_separator,
int num_ext,
174 size_t *extname_len);
192 optk_set_extname(
char *buffer,
size_t bufsize,
const char *path,
int num_ext,
193 const char *new_extname);
201 optk_copy(
const char *src_path,
const char *dest_path,
int clobber);
209 optk_move(
const char *src_path,
const char *dest_path,
int clobber);
217 optk_rename(
const char *src_path,
const char *dest_path,
int clobber);
226 optk_copy_attr(
const char *src_path,
const char *dest_path);
235 optk_create_dir(
const char *dirname);
254 optk_test(
const char *path,
const char *mode);
266 optk_test_dir(
const char *path);
278 optk_test_eq(
const char *path1,
const char *path2);
286 optk_unlink(
const char *path);