38 lines
1.1 KiB
C
38 lines
1.1 KiB
C
#ifndef FILE_H
|
|
#define FILE_H
|
|
|
|
#include <odweta/vector.h>
|
|
|
|
typedef struct {
|
|
char* path; // the file descriptor
|
|
int length; // line count
|
|
vector_t* lines; // 2d array of chars
|
|
int not_newline_terminated; // bool: 1 = true, 0 = false
|
|
} file_t;
|
|
|
|
file_t* fileInit(char* path); // initialization function
|
|
|
|
void fileCleanup(file_t* f); // just to be memory safe...
|
|
|
|
void filePrint(file_t* f); // prints the file as a string
|
|
|
|
char* fileToString(file_t* f); // returns a string with the file contents
|
|
|
|
void fileWriteln(file_t* f, char* payload); // appends a given string to the file on a newline
|
|
|
|
void fileWrite(file_t* f, char* payload); // appends a given string to the file (not on a newline!)
|
|
|
|
void fileCopy(file_t* src, char* dst); // copy file src into file dst
|
|
|
|
void fileDelete(file_t* f); // deletes a file
|
|
|
|
void fileMove(file_t* src, char* dst); // moves/renames a file
|
|
|
|
int fileExists(file_t* f); // 1 = yes, 0 = no
|
|
|
|
void fileCreateEmpty(char* path); // create an empty file with the given name
|
|
|
|
void fileNumberLines(file_t* f); // prepend line numbers in front of each line in a file
|
|
|
|
#endif
|