在JNA中使用时IPC_CREAT的值

时间:2014-07-17 17:24:02

标签: java jna

我需要通过posix消息队列传递java应用程序和c进程,我在java应用程序中使用JNA。

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

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

msqid = msgget(key, msgflg )

在Java应用程序中使用IPC_CREAT的价值是多少? 我在ipc.h中找到了:

/usr/include/sys/ipc.h:#define  IPC_CREAT       0001000         /* create entry if key doesn't exist */

我可以安全地假设我可以使用512吗? (十进制)?

感谢。

1 个答案:

答案 0 :(得分:1)

我建议您使用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。