我有一个C应用程序,其中我有一个变量,其值不断变化。我需要在Java应用程序中读取此值,因为它会发生变化。
我使用" shmget()"创建了一个共享内存段。在我的C程序中,所以我有密钥来访问共享内存。
如何在Java代码中使用该密钥访问此共享内存?
C代码如下
char myc;
int myshmid;
key_t mykey;
char *myshm,*mys;
int main(int argc, char *argv[], char *envp[])
{
mykey=5678;
if((myshmid=shmget(mykey,SHMSZ,IPC_CREAT | 0666))<0)
{
perror("shmget");
exit(1);
}
if((myshm=shmat(myshmid,NULL,0))==(char *) -1)
{
perror("shmat");
exit(1);
}
mys=myshm;
答案 0 :(得分:5)
你做不到。您需要以不同的方式与Java代码进行通信。
如果您的C和Java代码可以在同一个进程中运行,则可以使用JNI。否则,请使用套接字或类似的东西。