Idris2/support/c/idris_file.h

50 lines
1.2 KiB
C
Raw Normal View History

#pragma once
2020-05-18 16:51:10 +03:00
#include <stdint.h>
2022-09-21 13:13:15 +03:00
#include <stdio.h>
#include <sys/stat.h>
2020-05-18 16:51:10 +03:00
#ifdef _WIN32
#include <io.h>
#endif
2022-09-21 13:13:15 +03:00
FILE *idris2_openFile(char *name, char *mode);
void idris2_closeFile(FILE *f);
2020-05-18 16:51:10 +03:00
2022-09-21 13:13:15 +03:00
int idris2_fileError(FILE *f);
2020-05-18 16:51:10 +03:00
// Turn errno into an integer understandable by System.File
int idris2_fileErrno();
2022-09-21 13:13:15 +03:00
int idris2_chmod(const char *path, mode_t mode);
int idris2_removeFile(const char *filename);
2022-09-21 13:13:15 +03:00
int idris2_fileSize(FILE *h);
2020-05-18 16:51:10 +03:00
2022-09-21 13:13:15 +03:00
int idris2_fpoll(FILE *f);
2020-05-18 16:51:10 +03:00
void *idris2_popen(const char *cmd, const char *mode);
2021-11-03 18:10:43 +03:00
int idris2_pclose(void *stream);
// Seek through the next newline without
// saving anything along the way
2022-09-21 13:13:15 +03:00
int idris2_seekLine(FILE *f);
2020-05-18 16:51:10 +03:00
// Treat as a Ptr String (might be NULL)
2022-09-21 13:13:15 +03:00
char *idris2_readLine(FILE *f);
char *idris2_readChars(int num, FILE *f);
size_t idris2_readBufferData(FILE *h, char *buffer, size_t loc, size_t max);
int idris2_writeLine(FILE *f, char *str);
size_t idris2_writeBufferData(FILE *h, const char *buffer, size_t loc,
size_t len);
int idris2_eof(FILE *f);
int idris2_fileAccessTime(FILE *f);
int idris2_fileModifiedTime(FILE *f);
int idris2_fileStatusTime(FILE *f);
int idris2_fileIsTTY(FILE *f);
FILE *idris2_stdin();
FILE *idris2_stdout();
FILE *idris2_stderr();