我需要通过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吗? (十进制)?
感谢。
答案 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。