Из командной строки я могу запустить netstat, чтобы увидеть, используется ли уже один порт на машине примерно так:
netstat -nap | grep <port-num>
Какие функции я мог бы вызвать в C ++ в Linux, чтобы просто увидеть, используется ли определенный порт в настоящее время или нет? Я бы предпочел не делать системный вызов для самого 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
Других решений пока нет …