Здравствуйте, niXman, Вы писали:
X>т.е. в идеальном случае, код использования этой библиотеки должен быть таким:
X>X>active_t *a = 0;
X>int ec = active_new(&a);
X>if ( ec ) {
X> printf(stderr, "initialization error, errno=%d\n", ec);
X> return ec;
X>}
Не должен. Этот подход не позволит воспользоваться некоей уже имеющейся прикладной инфраструктурой вокруг errno.
Вот классика жанра:
sockfd = socket(AF_INET, SOCK_STREAM, 0);
if (sockfd == INVALID_SOCKET) {
notifyError("ERROR opening socket");
return;
}
notifyError неявно использует errno, который, в отличие от самописных глобальных аналогов, свой у каждого потока.
X>я пытаюсь обратить твое внимание на нелогичности.
Ты пытаешься задурить голову непонятно чем. Ты даже не обосновал, ЗАЧЕМ ты требуешь именно такой интерфейс. Вот с какой радости?