void * mymalloc(int size, char *what); void * myrealloc(void *oldp, int newsize, char *what); char * mystrdup(char *in); class buffered_reader { private: int fd, block_size; char *buffer; int buffer_length, buffer_pointer; int number_of_bytes_in_buffer(void); int read_into_buffer(void); public: buffered_reader(int fd, int block_size=4096); ~buffered_reader(); int garbage_collect(char shrink_buffer=0); char * read_line(void); }; #define min(x, y) ((x) < (y) ? (x) : (y))