Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/143.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ macOS:获取进程在本机C/C+中侦听已知TCP端口的PID+;_C++_Macos_Tcp_Port_Pid - Fatal编程技术网

C++ macOS:获取进程在本机C/C+中侦听已知TCP端口的PID+;

C++ macOS:获取进程在本机C/C+中侦听已知TCP端口的PID+;,c++,macos,tcp,port,pid,C++,Macos,Tcp,Port,Pid,我已经给出了一个本地TCP套接字的端口号,我想得到监听它的相关本地进程的PID。套接字绑定到127.0.0.1,仅用于本地进程间通信 我可以通过命令行执行此操作 lsof-nP-sTCP:LISTEN-i:|awk'NR>1{print$2}' 用于连接到的服务器端口(用于标识与之建立连接的本地服务器进程) 及 lsof-nP-sTCP:stated-i:|awk'NR>1{print$2}' 用于在侦听服务器中接受时的客户端端口(以标识连接的本地客户端进程) 有人知道如何在C/C++中实现这一

我已经给出了一个本地TCP套接字的端口号,我想得到监听它的相关本地进程的PID。套接字绑定到127.0.0.1,仅用于本地进程间通信

我可以通过命令行执行此操作

lsof-nP-sTCP:LISTEN-i:|awk'NR>1{print$2}'

用于连接到的服务器端口(用于标识与之建立连接的本地服务器进程)

lsof-nP-sTCP:stated-i:|awk'NR>1{print$2}'

用于在侦听服务器中接受时的客户端端口(以标识连接的本地客户端进程)

有人知道如何在C/C++中实现这一点吗? 调用像
lsof
这样的外部进程可能效率低下,并且可能会导致操作系统更新时出现性能问题和兼容性问题,因此,如果也可以通过C/C++中的API直接完成,那就太好了。我已经看过了lsof的源代码,但是看起来有点难读

谢谢大家,大家好,, 多米尼克