[英]Loop through first column of multidimensional array
我有一个包含 IP 地址及其相应网关的多维数组。 数组的结构如下所示。 我想遍历数组并将 IP 地址的第一列分配给我的网络接口。 我希望接口在某个时候会分配给它几个 IP 地址。 稍后我打算添加一个 function 来 ping 网关。
我似乎无法获得用于执行我的命令的第一列的值。 我确定我错误地引用了数组。 这是我到目前为止所拥有的。
char eth0IntName[256];
const char *arrayIPAddress[3][2]={
{"192.168.16.65", "192.168.16.66"},
{"192.168.17.65", "192.168.17.66"},
{"192.168.18.65", "192.168.18.66"}};
int main(int argc, char *argv[])
{
char cmdStr[256];
strcpy(eth0IntName, "eth0");
for(int i=0; i<3; i++)
{
sprintf(cmdStr, "/sbin/ip addr add %s/30 dev %s", (char *)&arrayIPAddress[i][0], eth0IntName);
printf("Executing: /sbin/ip addr add %s/30 dev %s", (char *)&arrayIPAddress[i][0], eth0IntName);
}
return 0;
}
我把它复杂化了。 我的 sprintf 线是错误的。 另外,我需要实际执行命令。 我添加了系统(cmdStr); 在那条线之后。 这是代码现在的样子。
char eth0IntName[256];
const char *arrayIPAddress[3][2]={
{"192.168.16.65", "192.168.16.66"},
{"192.168.17.65", "192.168.17.66"},
{"192.168.18.65", "192.168.18.66"}};
int main(int argc, char *argv[])
{
char cmdStr[256];
strcpy(eth0IntName, "eth0");
for(int i=0; i<3; i++)
{
sprintf(cmdStr, "/sbin/ip addr add %s/30 dev %s", arrayIPAddress[i][0], eth0IntName);
system(cmdStr);
printf("Executing: /sbin/ip addr add %s/30 dev %s", arrayIPAddress[i][0], eth0IntName);
}
return 0;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.