gpt4 book ai didi

java - 从 Java 使用 shmget() 访问在 C 中创建的共享内存

转载 作者:太空狗 更新时间:2023-10-29 16:12:32 25 4
gpt4 key购买 nike

我有一个 C 应用程序,其中有一个值不断变化的变量。我需要在我的 Java 应用程序中读取这个值,因为它发生了变化。

我在我的 C 程序中使用“shmget()”创建了一个共享内存段,所以我有访问共享内存的 key 。

如何在 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;

最佳答案

你不能。您将需要以不同的方式与您的 Java 代码通信。

如果您的 C 和 Java 代码可以在同一进程中运行,您就可以使用 JNI。否则,请使用套接字或类似的东西。

关于java - 从 Java 使用 shmget() 访问在 C 中创建的共享内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22434350/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com