#include #include #include "util.h" char *basename(char *path) { char *p; if ((p = strrchr(path, '/'))) return p+1; return path; } ssize_t loop_read(int FILEDES, void *BUFFER, size_t SIZE) { ssize_t c = 0; while (SIZE > 0) { ssize_t r = read(FILEDES, BUFFER, SIZE); if (r <= 0) break; SIZE -= r; c += r; BUFFER += r; } return c; } ssize_t loop_write(int FILEDES, const void *BUFFER, size_t SIZE) { ssize_t c = 0; while (SIZE > 0) { ssize_t r = write(FILEDES, BUFFER, SIZE); if (r <= 0) break; SIZE -= r; c += r; BUFFER += r; } return c; }