c android 存储文件怎么打开,管道返回null在文件打开使用C代码在Android ndk

我想写一些本地代码到我的Android应用程序,使用2个文件管道在Java代码和本机代码之间进行通信。最终的目标是让本地代码通过网络和java代码进行通信,只是为了管理不兼容数据和传出数据而在管道的两端进行监听。这是我从Java应用程序调用的代码:管道返回null在文件打开使用C代码在Android ndk

JNIEXPORT void JNICALL Java_com_test_fdtest_Bindings_openSession(JNIEnv *env, jobject this)

{

int inpipe[2];

int outpipe[2];

FILE *in;

FILE *out;

if(pipe (inpipe)) {

__android_log_print(ANDROID_LOG_DEBUG, DEBUG_TAG, "Unable to set up input pipe");

return;

}

if(pipe (outpipe)) {

__android_log_print(ANDROID_LOG_DEBUG, DEBUG_TAG, "Unable to set up output pipe");

return;

}

in = fdopen(inpipe[0], "w");

out = fdopen(outpipe[1], "r");

if(in == NULL) {

__android_log_print(ANDROID_LOG_DEBUG, DEBUG_TAG, "input pipe null");

}

if(out == NULL) {

__android_log_print(ANDROID_LOG_DEBUG, DEBUG_TAG, "output pipe null");

}

}

由此我得到的输出:

06-04 09:44:41.759: D/dalvikvm(1443): Trying to load lib /data/data/com.test.fdtest/lib/libfdtest.so 0x414955a8

06-04 09:44:41.789: D/dalvikvm(1443): Added shared lib /data/data/com.test.fdtest/lib/libfdtest.so 0x414955a8

06-04 09:44:41.789: D/NDK_BINDINGS(1443): input pipe null

06-04 09:44:41.799: D/NDK_BINDINGS(1443): output pipe null

这似乎奇怪。它似乎设置管道正常,但然后打开文件失败。这段代码是不是真的有些不妥,因为文档似乎暗示这会起作用。

感谢所有帮助

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值