我有一个包含fgets函数的C代码,我从Android Java调用这个代码。
我在两部手机(三星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);

编辑2:
logCat中的错误如下:
Tag:     HTCBuildFlagAdpater
Text:    Fail to get htc sku id by customization

这个问题代表什么?
有什么命令可以代替它吗?

最佳答案

哪些观察结果导致应用程序停止在该行?
“停止”是指应用程序挂在该行上,还是指应用程序终止?
如果是前者,也许它永远在等待设备的输入。
如果是后者,也许他们的c实现中存在一个bug,但这比后来发现应用程序实际上并没有在您认为的代码点处终止的可能性要小。

10-06 14:31