Java 在JNA中使用时IPC_create的值

Java 在JNA中使用时IPC_create的值,java,jna,Java,Jna,我需要通过posix消息队列与java应用程序和c进程进行通信,我正在java应用程序中使用JNA 在C进程中,创建消息队列时我使用: key_t key = 112233; int msgflg = IPC_CREAT | 0666; msqid = msgget(key, msgflg ) IPC_CREAT在Java应用程序中的价值是什么? 我在ipc.h中发现: /usr/include/sys/ipc.h:#define IPC_CREAT 0001000

我需要通过posix消息队列与java应用程序和c进程进行通信,我正在java应用程序中使用JNA

在C进程中,创建消息队列时我使用:

key_t key = 112233;
int msgflg = IPC_CREAT | 0666;

msqid = msgget(key, msgflg )
IPC_CREAT在Java应用程序中的价值是什么? 我在ipc.h中发现:

/usr/include/sys/ipc.h:#define  IPC_CREAT       0001000         /* create entry if key doesn't exist */
我可以假设我可以使用512吗?(十进制)


谢谢。

我建议您使用
950
,因为

final int IPC_CREAT = 0001000;
int msgflg = IPC_CREAT | 0666;
System.out.println(msgflg);
输出

950
我可能不明白你的问题,因为

printf("%i\n", 0001000 | 0666);
也输出

950
编辑

final int IPC_CREAT = 0001000;
System.out.printf("%d%n", IPC_CREAT);
输出为512。以及

printf("%i\n", 0001000);

输出为512。所以你可以用十进制512。或者像C这样的二进制版本。

我不知道你在问什么。当您尝试它时发生了什么?I java没有IPC_CREAT的“定义”,因此我必须用正确的值替换它。它可以与“0”配合使用,这就是为什么我想知道是否可以毫无问题地输入512。太好了。谢谢你的确认。