Сообщение Re[8]: а попинайте либу от 13.04.2015 15:25
Изменено 05.05.2015 21:09 vdimas
Здравствуйте, niXman, Вы писали:
X>т.е. в идеальном случае, код использования этой библиотеки должен быть таким:
X>
notifyError неявно использует errno, который, в отличие от самописных глобальных аналогов, свой у каждого потока.
X>я пытаюсь обратить твое внимание на нелогичности.
Ты пытаешься задурить голову непонятно чем. Ты даже не обосновал, ЗАЧЕМ ты требуешь именно такой интерфейс. Вот с какой радости?
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.
Вот классика жанра:
[ccode]
sockfd = socket(AF_INET, SOCK_STREAM, 0);
if (sockfd == INVALID_SOCKET) {
notifyError("ERROR opening socket");
return;
}
notifyError неявно использует errno, который, в отличие от самописных глобальных аналогов, свой у каждого потока.
X>я пытаюсь обратить твое внимание на нелогичности.
Ты пытаешься задурить голову непонятно чем. Ты даже не обосновал, ЗАЧЕМ ты требуешь именно такой интерфейс. Вот с какой радости?
Re[8]: а попинайте либу
Здравствуйте, niXman, Вы писали:
X>т.е. в идеальном случае, код использования этой библиотеки должен быть таким:
X>
Не должен. Этот подход не позволит воспользоваться некоей уже имеющейся прикладной инфраструктурой вокруг errno.
Вот классика жанра:
notifyError неявно использует errno, который, в отличие от самописных глобальных аналогов, свой у каждого потока.
X>я пытаюсь обратить твое внимание на нелогичности.
Ты пытаешься задурить голову непонятно чем. Ты даже не обосновал, ЗАЧЕМ ты требуешь именно такой интерфейс. Вот с какой радости?
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>я пытаюсь обратить твое внимание на нелогичности.
Ты пытаешься задурить голову непонятно чем. Ты даже не обосновал, ЗАЧЕМ ты требуешь именно такой интерфейс. Вот с какой радости?