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

时间:2010-07-07 10:01:29

标签: android android-ndk c-libraries

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

提前致谢。

3 个答案:

答案 0 :(得分:5)

通过Android NDK在本机C中编码时,可以使用这些功能。 NDK有一个标准的C库,包括这些功能。

  • getcwd(buf,size)与Unix标准的功能略有不同,因为如果buf为NULL,它不会分配内存。您应该预先分配缓冲区。 http://linux.die.net/man/2/chdir
  • chdir(path)按预期运行,虽然它的使用受到Android(愚蠢)不提供检索应用程序上下文相关信息(如外部存储路径)的功能的限制(尽管您可以检索路径通过JNI电话。)http://linux.die.net/man/3/getcwd
  • 我无法评论Android中的longjmp等功能。

如果您希望保留在Android Java环境中,您会发现当前工作目录没有概念,因此chdir()和getcwd()已废弃。相反,系统提供了一组用于发现内部和外部存储路径的功能(请参阅http://developer.android.com/guide/topics/data/data-storage.html)。 setjmp()/ longjmp()的典型用法通常可以由Java异常或其他机制覆盖。

答案 1 :(得分:1)

不确定是否将其集成到语言中,但如果您确实需要访问任何Native C方法,则可以使用JNI(Java Native Interface),这将允许您运行Native C代码。

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

答案 2 :(得分:-3)

你不应该需要它们。 Android应用程序通常使用Java完成。 setjmp / longjmp是一个C / C ++的东西(是的,我在其中编程了一段时间并仍然讨厌它: - )