-1

我想编写 ac 代码来提供我们系统的连接类型(无论是以太网还是加密狗)。我找到了一个库“libnm”(网络管理器),并且我在该库中找到了一个函数 nm_connection_get_connection_type。我不知道如何在我的代码中调用该函数,我很困惑是否有任何其他函数或方法来检测连接类型。任何人都可以通过至少给出一个关于做什么的想法来帮助我吗?

4

1 回答 1

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调试器来了解程序的行为。

所以还要阅读GDB(和GCC)的文档。

在 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的文档。

于 2020-11-20T12:12:37.090 回答