在我的应用程序中,我在父级和子级之间(在Linux和Windows上)为IPC使用共享内存。Linux的完整代码在上。
我在Linux上有下面的代码可以从共享内存中读取:
char buf[BUF_SIZE/4];
//pBuf is the shared memory location
sem_wait(semn);
//Wait for the parent process to write on the shared memory.
memcpy(buf, pBuf, sizeof(buf));
//Signal the parent
sem_post(sem0);
编写以下代码:
/
我已经写了一个共享库,可以通过我的linux系统和java的JNI调用来访问它。
该库应该有一个全局环缓冲区,它必须在JNI方法和其他本机方法中可用。
我认为这不是问题,因为当我从不同的程序访问SL时,全局变量总是应该的。
但是现在,在我的JNI方法中,全局变量似乎没有初始化(它们应该是程序流强制的)。
下面是我的例子:
ringbuf_t ringbuffer;
void internalMethod() {
// this method is first called from system-program
ringbuffer = ringbuf_new(5000);