2
我的應用程序創建一個tap界面,並且一切正常。但在FreeBSD上,當它退出時,tap界面仍然存在。要刪除它,我必須手動運行此命令:如何在FreeBSD中使用SIOCIFDESTROY?
sudo ifconfig tap0 destroy
但我想在我的應用程序中以編程方式執行此操作。我在哪裏可以找到SIOCIFDESTROY的文檔?下面是我試過,當我的應用程序退出:
struct ifreq ifr;
memset(&ifr, '\0', sizeof(ifr));
strcpy(ifr.ifr_name, "tap0");
int sock = socket(PF_INET, SOCK_STREAM, 0);
err = ioctl(sock, SIOCIFDESTROY, &ifr);
在這一點上,犯錯是零,但是當應用程序結束TAP接口仍然存在。任何人都知道我還可能錯過什麼?
沒關係......!在我嘗試的所有事情中,我在我的問題中粘貼的確切代碼是_did_的工作。我只是沒有注意到我找到了解決方案,因爲所有以前創建的TAP接口。不知道該怎麼做這個問題。隨意關閉,或留待任何未來的開發者尋求使用SIOCIFDESTROY。 – 2014-09-01 07:33:34
您可能想回答這個問題 - 並重復工作代碼 - 並解釋發生了什麼。這似乎很有價值,並且這種方式(可能)的問題不會被刪除。 – cnicutar 2014-09-01 08:05:33
@cnicutar完成! – 2014-09-01 08:24:10