Вопрос по типам Си - C (СИ)

Узнай цену своей работы

Формулировка задачи:

всем доброго времени суток. вопрос будет про Си. я полный лох в этом. объясните мне, пожалуйста, вот что: в стурктуре "sockaddr_in" стандартно заголовочного файла <sys/in.h> присутствует некий тип данных "sa_family_t", который typedef'ится из "__sa_family_t". Теперь идём в <sys/_types.h>. там видим, что "__sa_family_t" typedef'ится из "__uint8_t". теперь идём в <machine/_types.h> и там, наконец, видим, что "__uint8_t" typedef'ится из банального "unsigned char" объясните, зачем весь этот огород нужен? заранее благодраю. p.s. на форумах никогда раньше не общался, поэтому с удовольствием приму все замечания к построению вопроса и форме передачи сути... ну и т.д.

Решение задачи: «Вопрос по типам Си»

textual
Листинг программы
if (bind(sfd/*дескриптор соккета*/, (struct sockaddr *) &my_addr/*адрес структуры потому что
функция принимает указатель*/, sizeof(struct sockaddr_un)/*размер в байтах для ясности у
получателя*/) == -1)
               handle_error("bind");

Объяснение кода листинга программы

  1. В данном коде происходит попытка привязки сокета к определенному адресу.
  2. sfd - это дескриптор соккета, который был создан ранее.
  3. my_addr - это структура, содержащая адрес, к которому должен быть привязан сокет.
  4. sizeof(struct sockaddr_un) - это размер структуры sockaddr_un в байтах.
  5. Если привязка не удалась (возникла ошибка), то вызывается функция handle_error, которая обрабатывает ошибку с сообщением bind.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 4.2 из 5