1.70 C および C++ ライブラリでの入出力関数のカスタマイズ

高レベルの fscanf()fprintf()、低レベルの fputc()ferror()、C++ オブジェクト std::cout などの入出力ライブラリ関数は、ターゲットに依存しません。ただし、高レベルのライブラリ関数は、ターゲットに依存するシステム入出力関数を呼び出す低レベルのライブラリ関数を呼び出すことによって入出力を実行します。

入出力のターゲットを変更するには、以下を実行できます。
  • 高レベルのライブラリ関数を避ける
  • 低レベルのライブラリ関数を再定義する
  • システム入出力関数を再定義する
低レベルのライブラリ関数を再定義するのとシステム入出力関数を再定義するのとでどちらが良い選択であるかは、何を使用するかによって変わります。たとえば、UART は一度に単一の文字を書き込んでデフォルトの fputc() でバッファ処理が使用されるため、バッファを使用せずにこの関数を定義することは UART にとって適している場合があります。しかし、バッファ操作が可能な場合は、システム入出力関数を再定義する方がさらに適切である場合もあります。
関連する概念
1.47 main() から呼び出されるライブラリ関数
1.72 C ライブラリ printf ファミリ関数
1.73 C ライブラリ scanf ファミリ関数
1.74 C ライブラリで高レベルライブラリ関数の直接使用を有効化するための低レベルライブラリ関数の再定義
1.75 C ライブラリ関数 fread()、fgets()、および gets()
1.76 C ライブラリでの __backspace() の再実装
1.77 C ライブラリでの __backspacewc() の再実装
1.78 C ライブラリでのターゲットに依存するシステム入出力関数の再定義
関連する参考文書
1.71 C および C++ ライブラリ内での低レベル関数のターゲット依存関係
1.29 C ライブラリ関数の直接セミホスティング依存関数
1.30 C ライブラリ関数の間接セミホスティング依存関数
1.32 C ライブラリを使用しないアプリケーションの作成
4.38 _sys_close()
4.39 _sys_command_string()
4.40 _sys_ensure()
4.42 _sys_flen()
4.43 _sys_istty()
4.44 _sys_open()
4.45 _sys_read()
4.46 _sys_seek()
4.47 _sys_tmpnam()
4.48 _sys_write()
4.18 #pragma import(_main_redirection)
4.8 _fisatty()
非機密扱いPDF file icon PDF 版ARM DUI0475KJ
Copyright © 2010-2014 ARM.All rights reserved.