Информация об изменениях

Сообщение Re[8]: а попинайте либу от 13.04.2015 15:25

Изменено 05.05.2015 21:09 vdimas

Здравствуйте, 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.

Вот классика жанра:
[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>
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>я пытаюсь обратить твое внимание на нелогичности.


Ты пытаешься задурить голову непонятно чем. Ты даже не обосновал, ЗАЧЕМ ты требуешь именно такой интерфейс. Вот с какой радости?