MAC地址长度的标准C宏?

3

是否有标准(或半标准,广泛部署)的C宏来表示以下内容:

  1. MAC地址的长度格式为00:11:22:33:44:55,即17个字节。
  2. 原始MAC地址的长度,即6个字节。

我曾经在各种专有头文件中看到过这些定义,但我看到很多示例/教程代码都使用“适当”的宏,而没有这些东西——“6”总是硬编码。顺便说一下,我用的是Linux。

显然,自己定义这些宏非常简单,但如果可能,我想使用标准的宏。


你的问题含糊不清。你是真的只是在寻找一个宏定义为17,另一个定义为6吗? - Perry
@Perry:是的,那正是我要找的。 - bstpierre
如果宏定义了所需缓冲区的大小(包括NUL终止符),则是18。 - bstpierre
1个回答

3
一些平台定义了一个“/usr/include/net/ethernet.h”,其中有如下内容:
#define ETHER_ADDR_LEN 6
一些平台在if_ether.h中也有类似的定义(位于各种位置,包括netinet)。
然而,我不知道有什么定义字符串格式地址长度的东西,也不知道有任何强制实施这些#define的标准,因此它们可能不是普遍可移植的。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接