Cストリームシステムはどのように機能しますか?例えばCストリームシステムはどのように機能しますか?
、コード:
FILE *f;
// opens f...
fputc(f, "x");
が 'F' に開いていた方法に応じて、異なるものを行います。 'f'がファイルとしてオープンされている場合、そのファイルに文字が書き込まれます。 'f'がメモリストリームとしてオープンされている場合、charがメモリに書き込まれ、おそらくより多くのメモリが割り当てられます。
私の質問は:どのようにfputc関数が 'f'が何を意味し、それをどうするのか知っていますか?
追加の質問:これはオペレーティングシステムに完全に依存しているのですか、またはこのような抽象的なインターフェイスを純粋なC言語で実装することは可能ですか?
すべてのプラットフォームで、低レベルのシステムコールを使用して、純粋なC言語で実装された 'f *'関数_are_を見てきました。カーネル内の –
は、通常、さまざまな呼び出しのための関数ポインタを格納することで実装されます。 –
'FILE *'インターフェースを使ってメモリストリームを見つけましたか? – unwind