【发布时间】:2015-06-28 23:53:50
【问题描述】:
所以,我正在尝试编写一些 JNA 代码来使用 Unix 套接字,并且我正在尝试为套接字引用 AF_UNIX。我浏览了一些 gcc 包含的文件,但找不到任何东西。
【问题讨论】:
-
就像 chrylis 所说,它可能与平台有关,但您可以通过让编译器为您输出它来找出它在特定平台上的含义here
所以,我正在尝试编写一些 JNA 代码来使用 Unix 套接字,并且我正在尝试为套接字引用 AF_UNIX。我浏览了一些 gcc 包含的文件,但找不到任何东西。
【问题讨论】:
它可能与平台相关,这就是您应该使用定义的原因。它应该在sys/socket.h。
【讨论】:
int get_AF_UNIX_value(){ return AF_UNIX;} 并从 Java 中调用它:public static final int AF_UNIX = get_AF_UNIX_value();,减去任何 JNI/JNA 名称修改。
在我的 Ubuntu 机器上,它在 /usr/include/x86_64-linux-gnu/bits/socket.h 中定义为 1。我没有在其他 Unix 源代码树中检查过,但我感觉它可能在大多数其他 Unix 方言中被定义为 1。
【讨论】:
SOCK_STREAM 吗?我查看了那个文件和其他文件,没有运气。