IF_NAMESIZE 与 IF_NAMESIZE+1

pev*_*vik 3 c posix network-programming

当我使用IF_NAMESIZE(从net/if.hlibc 实现中)作为数组大小时,我应该按原样使用它还是使用+ 1for \0(空字节)?

char iface[IF_NAMESIZE];
Run Code Online (Sandbox Code Playgroud)

或者

char iface[IF_NAMESIZE + 1];
Run Code Online (Sandbox Code Playgroud)

我看到它在各种开源项目中使用这两种方式。

Sta*_*eur 5

标题应为包含接口名称(包括终止 NULL 字符)的缓冲区的长度定义以下符号常量:

IF_NAMESIZE 接口名称长度。

http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/net_if.h.html

所以:

char iface[IF_NAMESIZE];
Run Code Online (Sandbox Code Playgroud)

足够