的C元素时成功我有一个程序,它具有Java代码,然后使用JNI接口的C代码,我试图去实现的任务是将一些使用C源文件的Java文件,然后使用JNI实现相同的程序,但包含C文件。因此我知道Java代码没有问题。在源文件中,我有一个叫做readMap()的函数,它导致了这个问题。当通过JNI读取文件时发生崩溃,但运行代码为
我已成功地将问题缩小到一个事实,即由于某种原因,C代码将无法读取地图,下面如果当功能是通过JNI调用时执行的语句:
if(in = fopen("../maps/example_map.txt", "r") == NULL)
{
printf("Error opening file\n");
exit(-1);
}
但是,如果我只从MainTest.c中的main()运行C代码,该函数将读取地图中的罚款和所有的C代码将工作,因此我排除了类路径错误的可能性。
我也缩小了JNI本身,因为其他函数将被调用并在调用时返回所需的结果,但如果调用readMap(),则不起作用。
基本上我想知道是否有其他人有类似的问题,以及他们的修复是什么或者如果任何人有任何想法可能是什么?
'=='节拍'='。 – chux
您需要了解[*运算符优先级*](http://en.cppreference.com/w/c/language/operator_precedence),因为表达式“in = fopen(...)== NULL”不会做你认为它的事情。 –
你确定工作目录在两种情况下都是一样的吗?尝试使用绝对路径。 –