2.4 microlib でサポートされていない ISO C 機能

Microlib はすべての ISO C90 機能をサポートしていません。

microlib でサポートされていない主な ISO C90 機能は次のとおりです。
ワイドキャラクタおよびマルチバイトのサポート
ワイドキャラクタまたはマルチバイト文字列を扱う機能は、すべて microlib でサポートされていません。これらを使用すると、リンクエラーが生成されます。例えば、mbtowc()wctomb()mbstowcs()wcstombs() です。標準追補 1 で定義されている機能は、すべて microlib でサポートされていません。
オペレーティングシステムとのやりとり
オペレーティングシステムとやりとりする機能のほとんどは、microlib でサポートされていません。例えば、abort()exit()atexit()assert()time()system()getenv() です。clock() は例外です。経過時間ではなく –1 のみを返す、clock() の最小限の実装が用意されています。必要であれば、clock()(および必要な _clock_init())を再実装する場合があります。
ファイルの入出力
デフォルトで、ファイルポインタを使用する stdio の機能はいずれも、呼び出された場合にエラーを返します。ただし、stdinstdout、および stderr の 3 つの標準ストリームは、この機能の例外です。
#pragma import(__use_full_stdio) を使用すると、この動作を変更できます。このプラグマを使用すると、ANSI C をサポートする stdio の microlib バージョンを取得できます。ただし、以下の例外があります。
  • エラーおよび EOF の通知がサポートされていないので、feof()ferror()0 を返します。
  • ストリームはいずれもバッファされないので、setvbuf()setbuf() は失敗します。
設定可能なロケール
デフォルトの C ロケールのみ使用できます。
信号
signal() 関数と raise() 関数は存在していますが、microlib はシグナルを生成しません。ただし、プログラムが明示的に raise() を呼び出す場合は、この機能の例外です。
浮動小数点のサポート
浮動小数点のサポートは、以下の点で IEEE 754 と異なりますが、使用されるデータ形式および正規化数のみを伴う演算はそれぞれ IEEE 754 と同じです。
  • NaN、無限大、または入力非正規化数を伴う演算では、不定の結果が生じることがあります。ゼロ以外で非常に小さい値を結果として生成する演算は、ゼロを返します。
  • microlib では IEEE の例外にフラグを設定できず、fp_status() レジスタもありません。
  • microlib ではゼロの符号が有意として扱われず、microlib の浮動小数点演算から生成されるゼロに不明な符号ビットが付加されます。
  • デフォルトの丸めモードしかサポートされていません。
位置非依存およびスレッドセーフコード
microlib には再入可能なバリアントがありません。microlib では、スレッドセーフでないコードに対して保護するためのミューテックスのロックは提供していません。microlib の使用は、FPIC コンパイルモードまたは RWPI コンパイルモードと互換性がありません。ROPI コードは microlib とリンクできますが、最終的なバイナリは全体として ROPI に準拠していません。
コマンドライン引数
mainargc、および argv パラメータは未定義で、コマンドライン引数へのアクセスには使用できません。
関連する概念
2.1 microlib について
2.2 microlib とデフォルトの C ライブラリの違い
2.3 microlib のライブラリヒープ使用状況の要件
2.5 microlib を使用したアプリケーションのビルド
2.7 microlib とリンクしたプログラムの開始と終了
関連する作業
2.6 microlib で使用するスタックおよびヒープの設定
関連する参考文書
2.8 microlib 入出力関数のカスタマイズ
1.31 異なる環境をターゲットとした C ライブラリ API 定義
1.32 C ライブラリを使用しないアプリケーションの作成
4.3 clock()
4.4 _clock_init()
関連情報
#pragma import(__use_full_stdio)
非機密扱いPDF file icon PDF 版ARM DUI0475KJ
Copyright © 2010-2014 ARM.All rights reserved.