int join_path(char *out, size_t cap, const char *a, const char *b) { if (!out || !a || !b || cap == 0) return -1; int n = snprintf(out, cap, "%s/%s", a, b); if (n < 0 || (size_t)n >= cap) return -1; return n; }