MochiOS@仮想ファイルシステムの作成part3
MochiOS@仮想ファイルシステムの作成part3 前提知識無しで作るなんちゃって仮想ファイルシステムpart3。 開発日記です。独り言です。 これまでのあらすじ part 内容 0 仮想ファイルシステムを作りたい宣言をする。 1 ざっくり仮想ファイルシステムの機能を決める。 が、機能呼出し先の仮想ファイルシステムのタスクIDをどう取得するかという問題に気付く。 2 カーネルにタスク名登録機能を実装した。 これでタスク名からタスクIDを取得する事が出来る様になるハズ、なので試したいが試す方法が無い事に気付き、ログ出力タスクの開発を宣言する。 %dとか使いたいじゃん? part3では、ログ出力機能も実装して、試してみて、わはーうまく動いてる。って書きたかったんだけど、欲張りな私は、printfみたいに「%d」とかで書式指定して変数の内容をログ出力したいと考えたわけだ。 というわけで、C標準ライブラリのvsnprintf()を実装したい。 何故vsnprintf()かというと、 log( "へんすうのあたい=%d", value ); みたいにログ出力関数の引数を可変長にしたいから。 vsnprintf()の仕様 wikipedia さんによるとこんな規則なんですよ。 %[引数順][フラグ][最小フィールド幅][.精度][長さ修飾子]変換指定子 仕様がよくわからんので、 どっかから拾ってきた 仕様を、英語できないけどがんばって訳してみる。 引数順 ISO/IEC9899:1999には無さそうだし、見なかったことにするよ。 フラグ(flag) Zero or more flags (in any order) that modify the meaning of the conversion specification. 変換指定の意味を修飾する0個以上のフラグ(順不同) フラグ 英語説明 適当翻訳 - The result of the conversion is left-justified within the field. (It is right-justified if...