我想编写 ac 代码来提供我们系统的连接类型(无论是以太网还是加密狗)。我找到了一个库“libnm”(网络管理器),并且我在该库中找到了一个函数 nm_connection_get_connection_type。我不知道如何在我的代码中调用该函数,我很困惑是否有任何其他函数或方法来检测连接类型。任何人都可以通过至少给出一个关于做什么的想法来帮助我吗?
1 回答
如何使用“libnm”库中的函数 nm_connection_get_connection_type 编写 ac 代码来检测连接类型
请阅读 C11 标准草案n1570。还可以查看这个关于 C 的参考网站,并阅读Modern C。
C 编程语言的规范中没有任何与网络相关的内容。
但是,操作系统通常会提供与网络相关的库。
对于 Linux,请阅读Advanced Linux Programming ,然后阅读syscalls(2 ) 和相关页面。特别参见sockets(7)和tcp(7)。您可能也对proc(5)感兴趣。
对于 Windows,请深入了解 WinAPI 文档。
该nm_connection_get_connection_type
功能在此处记录。您当然需要开始阅读有关使用 libnm的内容。它返回一个您可能会显示的字符串,例如使用printf("current connection type %s\n", nm_connection_get_type(your_nm_connection))
. 当然参见printf(3)和stdio(3)和errno(3)。
当然,您还应该使用所有警告和调试信息(使用GCC,这意味着使用 gcc -Wall -Wextra -g
)进行编译,然后使用GDB调试器来了解程序的行为。
在 Linux 上,您还可以使用strace(1)或ltrace(1)来了解您(或其他一些)程序的行为。
最后,该libnm
库是开源的(就像所有GTK一样)。考虑下载它的源代码并研究它。
您可能使用GNU make来构建您的软件。所以请阅读 GNU make 的文档。你可能会使用GNU emacs来编辑你的源代码,所以请阅读它的文档。
关于 Linux 上的共享库,请阅读Program Library Howto with ld.so(8)和ldd(1),然后阅读 Drepper 关于如何编写共享库的论文和GNU binutils的文档。