在android java:fgets()函数中调用c文件不会';t致力于HTC Desire
我有一个C代码,其中包含在android java:fgets()函数中调用c文件不会';t致力于HTC Desire,java,android,c,mobile,android-ndk,Java,Android,C,Mobile,Android Ndk,我有一个C代码,其中包含fgets函数,我从android java中调用该代码 我在两部手机(三星Galaxy和索尼Xperia)上运行这个应用程序,一切正常 但当我在HTC Desire 300和500上运行该应用程序时,该应用程序停止在fgetsfunction 这是使应用程序停止的命令: line = fgets(buf, (int)sizeof(buf), modem); 其中:{EDIT1} 这个问题代表什么? 有什么命令可以替代它吗?哪些观察结果导致应用程序停止在该行 “停止”是
fgets
函数,我从android java中调用该代码
我在两部手机(三星Galaxy和索尼Xperia)上运行这个应用程序,一切正常
但当我在HTC Desire 300和500上运行该应用程序时,该应用程序停止在fgets
function
这是使应用程序停止的命令:
line = fgets(buf, (int)sizeof(buf), modem);
其中:{EDIT1}
这个问题代表什么?
有什么命令可以替代它吗?哪些观察结果导致应用程序停止在该行 “停止”是指应用程序挂起在该行,还是指应用程序终止 如果是前者,它可能永远在等待设备的输入
如果是后者,可能是他们的C实现中有一个bug,但这比后来发现应用程序实际上并没有在您认为的代码点终止的可能性要小。您想读什么?一些特定的硬件?在哪里打开文件?它在外部存储器上吗?(顺便说一句,你永远不要硬编码
“/sdcard/”
)。你确定调制解调器变量不是空的,并且已初始化吗?@greenapps是的,我正在尝试从手机的调制解调器读取一些低级信息。@Sipka我将编辑Q。以添加目录。是的,我确定,因为正如我在Q中所说的,相同的代码在另一台设备上完美地运行。我无法理解您可以在以读取模式打开的文件上使用FPUT。
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);
Tag: HTCBuildFlagAdpater
Text: Fail to get htc sku id by customization