Задать вопрос
@tu160

Исходники стандартной библиотеки?

Здравствуйте.

Понимаю, что вопрос задавали миллион раз, но не понимаю как использовать ответы на него.
Пытаюсь понять связь connect() с SIGALRM (существует ли она вообще?), для этого хочу посмотреть исходники самой функции.

Захожу сюда
https://sourceware.org/git/?p=glibc.git;a=tree

И что я вижу в файле connect.c

int
__connect (int fd, __CONST_SOCKADDR_ARG addr, socklen_t len)
{
  __set_errno (ENOSYS);
  return -1;
}


Как это понимать? Это что вся функция, которая нам устанавливает связь с сервером?

Подскажите, пожалуйста. Дайте путь истинный.
  • Вопрос задан
  • 90 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 1
jcmvbkbc
@jcmvbkbc
"I'm here to consult you" © Dogbert
Как это понимать? Это что вся функция, которая нам устанавливает связь с сервером?

Это заглушка, на случай, если нет другой реализации этой функции.
Для linux другая реализация есть, она находится в sysdeps/unix/sysv/linux/connect.c, но всё что она делает -- это системный вызов, обёрнутый в манипуляции с pthread-cancellation.

Можно посмотреть на реализацию системного вызова в ядре. Начать можно отсюда, это диспетчер системного вызова connect. Реализация connect для TCP/IPv4 находится здесь.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы