Android是否支持setjmp/longjmp、access、chdir、getcwd?

Android是否支持setjmp/longjmp、access、chdir、getcwd?,android,android-ndk,c-libraries,Android,Android Ndk,C Libraries,我对Android开发还很陌生,我想知道Android是否支持C中的上述功能 提前感谢。不确定它是否已将这些方法集成到该语言中,但如果您确实需要访问任何本机C方法,可以使用JNI(Java本机接口),它将允许您运行本机C代码 另外,看看Exception和File类——它们可能会为您提供类似的功能。您不应该需要它们。Android应用程序通常是用Java编写的。setjmp/longjmp是一个C/C++的东西(是的,我用它编程了一段时间,但仍然讨厌它:-)当通过Android NDK用本机C编

我对Android开发还很陌生,我想知道Android是否支持C中的上述功能


提前感谢。

不确定它是否已将这些方法集成到该语言中,但如果您确实需要访问任何本机C方法,可以使用JNI(Java本机接口),它将允许您运行本机C代码


另外,看看Exception和File类——它们可能会为您提供类似的功能。

您不应该需要它们。Android应用程序通常是用Java编写的。setjmp/longjmp是一个C/C++的东西(是的,我用它编程了一段时间,但仍然讨厌它:-)

当通过Android NDK用本机C编码时,这些函数是可用的。NDK有一个包含这些函数的标准C库

  • getcwd(buf,size)的功能与Unix标准稍有不同,因为如果buf为NULL,它不会分配内存。你应该预先分配缓冲区
  • chdir(path)的功能与预期一样,尽管它的使用受到以下事实的限制:Android(愚蠢地)没有提供检索应用程序上下文相关信息的功能,例如到外部存储的路径(尽管可以通过JNI调用检索路径)
  • 我不能评论longjmp等Android系统的功能

如果您希望留在Android Java环境中,您会发现没有当前工作目录的概念,因此chdir()和getcwd()被淘汰。相反,系统提供了一组用于发现内部和外部存储路径的功能(请参阅)。另外,setjmp()/longjmp()的典型用法通常可以被Java异常或其他机制所覆盖。

hm我想可能是你说的那样。就JNI而言,我将寻找更多关于这方面的信息。ThanksIt是未指定的行为,在其中包含大小为0的参数。Android的实现仍然是一致的。分配内存的行为实际上是。您提到的Unix标准是不正确的。