AndroidはSetJMP/LongJMP、Access、CHDIR、getCWDをサポートしていますか?
-
02-10-2019 - |
質問
私はAndroid Developmentにかなり初めてです。AndroidがCにある上記の機能をサポートしているかどうかを知りたいと思います。
前もって感謝します。
解決
これらの関数は、Android NDKを介してネイティブCでコーディングするときに使用できます。 NDKには、これらの機能を含む標準Cライブラリがあります。
- GETCWD(BUF、サイズ)は、BUFがnullである場合にメモリを割り当てないという点で、UNIX標準とは少し異なって機能します。バッファーを事前に配置する必要があります。 http://linux.die.net/man/2/chdir
- CHDIR(PATH)は予想どおりに機能しますが、その使用は、Android(愚かな)が外部ストレージへのパスなどのアプリケーションコンテキスト関連情報を取得する機能を提供しないという事実によって制限されています(ただし、JNI呼び出しを介してパスを取得できます。 。) http://linux.die.net/man/3/getcwd
- LongJMPなどのAndroidの機能についてコメントすることはできません。
Android Java環境に留まりたい場合は、現在の作業ディレクトリの概念がないため、Chdir()とgetCwd()は廃止されていることがわかります。代わりに、システムは内部および外部ストレージパスを発見するための一連の関数を利用可能にします(参照 http://developer.android.com/guide/topics/data/data-storage.html)。また、setjmp()/longjmp()の典型的な使用は、一般にJavaの例外またはその他のメカニズムでカバーできます。
他のヒント
言語に統合されたものがあるかどうかはわかりませんが、ネイティブCメソッドに実際にアクセスする必要がある場合は、JNI(Javaネイティブインターフェイス)を使用できます。これにより、ネイティブCコードを実行できます。
また、例外とファイルのクラスを見てください - それらはあなたに同様の機能を与えるかもしれません。
あなたはそれらを必要としないはずです。 Androidのアプリは通常、Javaで行われます。 setjmp/longjmpはc/c ++のものです(はい、私はしばらくプログラムしましたが、それでも嫌いです:-)
所属していません StackOverflow