#include "file.h" #include "e.h" #include #include #include #include #include #include error_t touch (char *path, char *format, ...) { error_t err = { 0 }; err.null = true; // success by default va_list args; va_start (args, format); FILE *fp = fopen (path, "w"); if (!fp) { err.null = false; err.status = errno; err.src = strerror (errno); va_end (args); return err; } vfprintf (fp, format, args); fclose (fp); va_end (args); return err; } error_t dir (char *format, ...) { error_t err = { 0 }; err.null = true; // success by default va_list args; va_start (args, format); char path[1024]; vsnprintf (path, sizeof (path), format, args); va_end (args); if (mkdir (path, 0777) < 0) { err.null = false; err.status = errno; err.src = strerror (errno); } return err; }