今回は、Go言語がOS直上の低レイヤーを扱いやすくするために提供している io.Writer インタフェースの紹介をします。Go言語がシステムプログラミングを簡単に行える言語でありつつも、それなりに少ない記述量で比較的高速で、それでいて多くのことが達成できるのは、これから説明するようなインタフェースにより、低レイヤーが扱いやすい構造になっているからです。インタフェースと、インタフェースに対して提供されるさまざまなサービス関数が、Go言語の安い、早い、うまいの秘密です。 io.WriterはOSが持つファイルのシステムコールの相似形 前回の記事では "Hello World!" プログラムの関数呼び出しをデバッガーでたどり、最後にシステムコール syscall.Write() が呼び出されているようすを見ました。OSでは、このシステムコールを、ファイルディスクリプタと呼ばれるものに対して呼び
![低レベルアクセスへの入り口(1):io.Writer](https://cdn-ak-scissors.b.st-hatena.com/image/square/331be6af1e8d206e83a3842e5866f257956e10ed/height=288;version=1;width=512/https%3A%2F%2Fascii.jp%2Fimg%2F2016%2F10%2F05%2F542843%2Fl%2F74e09ae3d29a6c11.jpg%3F20200122)