【发布时间】:2014-07-05 14:46:43
【问题描述】:
我有一个包含 fgets 函数的 C 代码,我从 android java 调用此代码。
我在 2 部手机(三星 Galaxy 和索尼 Xperia)上运行此应用,一切正常。
但是当我在 HTC Desire 300 和 500 上运行该应用程序时,该应用程序停止在 fgets 函数!!。
这是使应用停止的命令:
line = fgets(buf, (int)sizeof(buf), modem);
其中:{EDIT1}
static char buf[4 * 1024];
FILE *modem;
char *line="AT\r";
char q[4 * 1024 * 10];
modem = fopen("/dev/smd0", "r+b");
if (modem == NULL)
{
return (*env)->NewStringUTF(env, "2fopen() failed: /dev/smd0\n");
}
res = fputs(line, modem);
if (res < 0)
{
return (*env)->NewStringUTF(env, ("5failed to send '%s' to modem res = " + res,line));
}
line = fgets(buf, (int)sizeof(buf), modem);
EDIT2:
logCat中的错误是这样的:
Tag: HTCBuildFlagAdpater
Text: Fail to get htc sku id by customization
这个问题代表什么? 有什么命令可以代替它吗?
【问题讨论】:
-
你想读什么?一些特定的硬件?
-
你在哪里打开文件?它在外部存储上吗? (顺便说一句,你永远不应该对
"/sdcard/"进行硬编码。)你确定调制解调器变量不为NULL,并且已初始化吗? -
@greenapps 是的,我正在尝试从手机的调制解调器中读取一些低级信息。
-
@Sipka 我将编辑 Q. 以添加目录。是的,我敢肯定,因为正如我在 Q 中所说,相同的代码在另一台设备上完美运行。
-
无法理解您可以在以读取模式打开的文件上使用 fputs。
标签: java android c mobile android-ndk