Nios® Vプロセッサー・ソフトウェア開発者ハンドブック

ID 743810
日付 10/31/2022
Public

このドキュメントの新しいバージョンが利用できます。お客様は次のことを行ってください。 こちらをクリック 最新バージョンに移行する。

ドキュメント目次

6.11.5.1. 'asnprintf()'の定義

newlibは 22 のprintf()バリアントの迷路を実装しており、すべて同じコアエンジンに基づいており、インターフェースがわずかに異なります。 C 標準で指定されているもの、Posix で指定されているもの、GNU 拡張機能、newlib拡張機能のものもあります。newlib libcのウェブページには、それぞれの標準に準拠する関数が文書化されています。

libcの詳細については、レッドハット newlib C ライブラリー ウェブページを参照してください。 。

22 のバリアントは、デザインの選択肢の 4 次元空間を埋めます。
  • Plain vs varargs
  • File vs buffer output
  • Output buffer management alternatives:
    • Fixed buffer, unknown length
    • Fixed buffer, known length
    • malloc()ed-and-returned buffer
    • realloc()-able buffer
  • Plain vs no-floating-point formatting support

迷路へのマップは、プレフィックス文字のセットです。

v*printf (mnemonic: v-for-varargs)

正規のprintf()関数は、フォーマット文字列内のパーセント指定子ごとに 1 つを含む可変数の引数を受け取ります。これは、ユーザーにとっては便利ですが、可変数の引数を受け取り、通常のprintf()ライブラリーを呼び出す前に何らかの値の追加を行うラッパー関数にとっては不便です。C には、関数が可変数の引数を読み取り、可変数の引数を取る別の関数に渡すための便利で移植可能な方法が提供されていないためです。 したがって、C ライブラリーは、プレーンなprintf()関数ごとに、可変引数ベクトル形式で追加の引数を受け入れる v*printf バリアントを提供します。

「プレーンな」(可変数の引数) printf 関数は次のとおりです。
  • fprintf()
  • printf()
  • asprintf()
  • asnprintf()
  • snprintf()
  • sprintf()
  • fiprintf()
  • iprintf()
  • asiprintf()
  • asniprintf()
  • sniprintf()
  • siprintf()
固定数の引数 (vararg ベース) のバリアントは次のとおりです。
  • vprintf()
  • vasprintf()
  • vasnprintf()
  • vsprintf()
  • vsnprintf()
  • viprintf()
  • vasiprintf()
  • vasniprintf()
  • vsiprintf()
  • vsniprintf()
注: ニーモニックにもかかわらず、これらの関数は実際には整数のみではありません。(たとえば) unsigned、char、および string 値もサポートしています。
上記のすべてのバリアントをひとまとめにすると、newlibでサポートされるprintf()関数の完全なリストは次のとおりです。
  • fprintf()
  • vprintf()
  • printf()
  • asprintf()
  • asnprintf()
  • snprintf()
  • sprintf()
  • vasprintf()
  • vasnprintf()
  • vsprintf()
  • vsnprintf()
  • fiprintf()
  • iprintf()
  • viprintf()
  • asiprintf()
  • asniprintf()
  • sniprintf()
  • siprintf()
  • vasiprintf()
  • vasniprintf()
  • vsiprintf()
  • vsniprintf()
  • dprintf, vdprintf: ファイル・ディスクリプターに出力します (FILE* に対して)。
  • dprintf, vdprintf: 上記の浮動小数点フォーマットを使用しないバージョン。
  • fwprintf, swprintf, vfwprintf, vswprintf, vwprintf, wprintf: ワイド文字をサポートするバージョン。

これらのprintf()バリアントの詳細については、The Red Hat newlib C Librayウェブページを参照してください。