Linux C:如何知道上网的默认界面?

我想找出正在使用的默认networking,我目前的方法是找出所有的IP地址,并将其与默认的网关IP地址进行比较,但这听起来很愚蠢,这是做到这一点的正确方法?

UPDATE

我想使用一个C程序,而不是命令…

Solutions Collecting From Web of "Linux C:如何知道上网的默认界面?"

你可以尝试一个稍微更肮脏但无限更简单的方法:

cnicutar@lemon:~$ ip route show to 0.0.0.0/0 default via XYZT dev eth0 proto static ^^^^ 

所以你可以尝试:

 FILE *cmd = popen("ip route show", "r"); fgets(str, LEN, cmd); 

然后你可以使用strtokstrstr