在命令提示符下,我可以运行 netstat 以查看单个端口是否已在机器上使用,如下所示:
netstat -nap | grep <port-num>
我可以在 Linux 上调用 C++ 中的哪些函数来查看当前是否正在使用特定端口?我宁愿不对 netstat 本身进行系统调用。
如果你这样做:
strace netstat -nap
您可以推断 netstat 正在做什么来获取该信息。
例如:
open directory: openat(AT_FDCWD, "/proc/2073/fd", ...) = 4)
get entries: getdents(4, /* 15 entries */, 32768) = 360
read symbolic links: readlink("/proc/2073/fd/4", "socket:[48395]", 29) = 14
that one was a socket connected on port 48395