有人在搞android底层开发吗,NDK里面无法使用shmget 共享内存怎么办啊?

mldxs 2011-12-15 11:24:25
RT
...全文
529 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
mldxs 2011-12-15
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 dongjiawei316 的回复:]

那你就用别的IPC方式啊!
[/Quote]
采用信号量的代码如下:
sem_open失败
JNIEXPORT jboolean JNICALL Java_com_secneo_security_nf_api_ProcessMutex_getMutex
(JNIEnv *env, jobject obj){
char tmp[256] ;
char *lock = "/ldx.txt" ;
sem_t *mutex ;
jboolean ret = -1 ;
sprintf(tmp , "enter getMutex") ;
LOGD(lock) ;
mutex = sem_open(lock, O_CREAT, 0644, 1) ;
//int ii = sem_init(mutex, 0, 0) ;
//sprintf(tmp , "sem_init = %d" , ii) ;
//LOGD(tmp) ;
if (mutex == SEM_FAILED){
sprintf(tmp , "sem_open faild-----------------") ;
LOGD(tmp) ;
ret = -1 ;
return ret ;
}
sprintf(tmp , "open getMutex") ;

int sval = -1 ;
sem_getvalue(mutex , &sval) ;
sprintf(tmp , "sval = %d" , sval) ;
LOGD(tmp) ;
if(0 == sval){
sem_post(mutex) ;
sprintf(tmp , "post sem") ;
LOGD(tmp) ;
}

sem_wait(mutex) ;

sprintf(tmp , "free sem") ;
LOGD(tmp) ;

sem_post(mutex) ;

ret = 1 ;
return ret ;
}
mldxs 2011-12-15
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 dongjiawei316 的回复:]

那你就用别的IPC方式啊!
[/Quote]

尝试用过信号量,可是信号量打开总是失败。。。
dongjiawei316 2011-12-15
  • 打赏
  • 举报
回复
那你就用别的IPC方式啊!
qq120848369 2011-12-15
  • 打赏
  • 举报
回复
mmap呢?

23,120

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧