可以使用其他一些例程来简化名称和地址的处理。下表概述了用于处理长度可变字节字符串以及字节交换网络地址和值的例程。
表 7–2 运行时库例程
接口 |
概要 |
---|---|
比较字节字符串;如果相同,则为 0,否则不为 0 |
|
将 n 个字节从 s2 复制到 s1 |
|
将 n 个字节设置为以 base 开始的 value |
|
从主机字节顺序转换到网络字节顺序的 32 位值 |
|
从主机字节顺序转换到网络字节顺序的 16 位值 |
|
从网络字节顺序转换到主机字节顺序的 32 位值 |
|
从网络字节顺序转换到主机字节顺序的 16 位值 |
因为操作系统希望以网络顺序提供地址,所以提供了字节交换例程。在某些体系结构中,主机字节顺序不同于网络字节顺序,因此有时程序必须对值进行字节交换。返回网络地址的例程以网络顺序执行此操作。仅在解释网络地址时会出现字节交换问题。例如,以下代码设置 TCP 或 UDP 端口的格式:
printf("port number %d\n", ntohs(sp->s_port));
在不需要这些例程的计算机上,将这些例程定义为空宏。