seterror
seterror(int id, ...)
#define seterror(value) do { if (error) *error = value;} while (0)
#define seterror(_v_) if ((_v_) == -1) rv = errno; else rv = 0;