#include #include #include #include #include #include #include "eps.h" int main(int argc, char *argv[]) { size_t size = 0; int ret = 0, fd = 0; char buf[500] = { 0 }; line_t *l = NULL; line_t *ol = NULL; if (argc < 2) return 1; fd = open(argv[1], O_RDONLY); if (fd == -1) return 1; l = line_alloc(); if (l == NULL) { close(fd); return 1; } ol = line_alloc(); if (ol == NULL) { close(fd); return 1; } line_init(l, NULL, 5000); line_init(ol, NULL, 5000); while(1) { memset((char *)buf, 0, 500); ret = read(fd, buf, 500); if (ret < 1) break; line_inject(l, buf, ret); } ret = base64_encode(ol, l); if (!ret) printf("Error encoding\n"); line_kill(l); close(fd); size = write(1, ol->data, ol->bytes); if (size < ol->bytes) { printf("Error writing\n"); return 0; } line_kill(ol); return 0; }