当您在命令行中输入路线时,对于标志,它会打印出 U、UG 等。在路线文件中,它将标志存储为数字 0001、0003 等。文件 /proc/net/ 中的标志数字如何?路线转换为使用路线打印出来的标志的字母?
答案1
网络工具来源是这里。解码 lib/inet_gr.c 中的标志:
/* Decode the flags. */
flags[0] = '\0';
if (iflags & RTF_UP)
strcat(flags, "U");
if (iflags & RTF_GATEWAY)
strcat(flags, "G");
...
标志在 lib/net-support.h 中定义。例子:
#define RTF_UP 0x0001 /* route usable */
#define RTF_GATEWAY 0x0002 /* destination is a gateway */
#define RTF_HOST 0x0004 /* host entry (net otherwise) */