#ifndef FILE_H #define FILE_H #include 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 int fileCountWords(file_t* f); // counts the number of words in a file #endif