ether_aton - ether_line,
ether_aton(3)
ether_line,
ОБЗОР
#include <netinet/ether.h>
char *ether_ntoa(const struct ether_addr *addr);
struct ether_addr *ether_aton(const char *asc);
int ether_ntohost(char *hostname, const struct ether_addr *addr);
int ether_hostton(const char *hostname, struct ether_addr *addr);
int ether_line(const char *line, struct ether_addr *addr,
char *hostname);
/* расширения GNU */
char *ether_ntoa_r(const struct ether_addr *addr, char *buf);
struct ether_addr *ether_aton_r(const char *asc,
struct ether_addr *addr);
ОПИСАНИЕ
Функция
ether_aton() преобразует 48-битный адрес узла Ethernet
asc из
стандартной записи в виде шестнадцатеричных-символов-и-двоеточий в двоичный
код с сетевым порядком расположения байтов и возвращает указатель на него в
статически выделенном буфере, который могут изменить любые последующие
вызовы. Функция
ether_aton() возвращает NULL, если адрес некорректен.
Функция ether_ntoa() преобразует адрес узла Ethernet addr, заданный
значением с сетевым порядком байтов, в строку в стандартной форме записи в
виде шестнадцатеричных-символов-и-двоеточий. Строка возвращается в
статически выделяемом буфере, который перезаписывается при последующих
вызовах.
Функция ether_ntohost() для заданного адреса Ethernet ищет
соответствующее имя узла в файле /etc/ethers и возвращает ненулевое
значение, если оно не может быть найдено.
Функция ether_hostton() для заданного имени узла ищет соответствующий
адрес Ethernet в файле /etc/ethers и возвращает ненулевое значение, если
он не может быть найден.
Функция ether_line() обрабатывает строку в формате файла /etc/ethers
(адрес Ethernet, пробельный символ, имя узла; комментарий начинается с
'#') и возвращает пару адрес/имя узла, или ненулевое значение, если
строка не может быть обработана. Буфер, на который указывает hostname,
должен быть достаточно большим, чтобы вместить, например, строку line.
Функции ether_ntoa_r() и ether_aton_r() являются безопасными для
использования в нитях аналогами ether_ntoa() и ether_aton()
соответственно, и не используют статических буферов.
Структура ether_addr определена в <net/ethernet.h>:
struct ether_addr {
uint8_t ether_addr_octet[6];
}
АТРИБУТЫ
Описание терминов данного раздела смотрите в
attributes(7).
Интерфейс Атрибут Значение
ether_aton(),
ether_ntoa()
безвредность в потоках: небезопасно (MT-Unsafe)
ether_ntohost(),
ether_hostton(),
ether_line(),
ether_ntoa_r(),
ether_aton_r()
безвредность в потоках: безвредно (MT-Safe)
СООТВЕТСТВИЕ СТАНДАРТАМ
4.3BSD, SunOS.
ДЕФЕКТЫ
В glibc 2.2.5 и старее реализация
ether_line() некорректна.