2014-07-17 1 views
1

posix 메시지 큐를 통해 Java 응용 프로그램과 C 프로세스를 통신해야하며 Java 응용 프로그램에서 JNA를 사용하고 있습니다.JNA에서 사용할 때의 IPC_CREAT 값

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

msqid = msgget(key, msgflg) 

가 IPC_CREAT의 값이 Java 응용 프로그램에서 사용하는 무엇입니까 : C 공정에서

때 내가 사용하고 메시지 큐를 만들? 나는 ipc.h에서 발견 :

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

내가 안전은 내가 512을 사용할 수 있다고 가정 할 수 있습니까? (10 진수)?

감사합니다.

+0

같은 바이너리 버전을 사용할 수 있습니다, 512이며, . 당신이 그것을 시도했을 때 무슨 일이 일어 났습니까? –

+0

나는 자바 IPC_CREAT에 대한 "정의"가 없으므로 올바른 값으로 교체해야한다. 그것은 '0'으로 잘 작동 할 것이고, 이것이 제가 문제없이 512를 넣을 수 있는지 궁금합니다. – Dragos

답변

0

나는

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); 

출력

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

출력은 512 그래서 당신은 당신이 요구하는지 확실하지 않다 진수 512 또는 C.

+1

좋아요. 확인해 주셔서 감사합니다. – Dragos