static char CLASS_NAME[] = “com/sailor/ShareMem”;
static shared_use_st *use_st = NULL;
static jint throwException(JNIEnv* env, jobject clazz, const char *clsname, const char *msg)
{
jclass cls;
cls = ( *env)->FindClass(env, clsname);
if(cls == NULL){
return -1;
}
(*env)->ThrowNew(env,cls, msg);
return -1;
}
static jint openMem(JNIEnv* env, jobject clazz, jstring name, jint length)
{
shared_use_st *st = NULL;
const char* namestr = (name ? (*env)->GetStringUTFChars(env,name, NULL) : NULL);
int result = -1;
if(access(namestr, F_OK) == 0)
{
result = open(namestr, O_RDWR);
}
else
{
result = open(namestr, O_RDWR|O_CREAT);
if(result >= 0)
{
st = (shared_use_st *)malloc(sizeof(shared_use_st));
if(st == NULL)
{
LOGE(“open malloc failed”);
}
if(write(result, st, sizeof(shared_use_st)) < 0)
{
LOGE(“open write failed”);
}
free(st);
}
}
(*env)->ReleaseStringUTFChars(env, name, namestr);
return result;
}
static jint getMem(JNIEnv*