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