技術メモ

神奈川在住のITエンジニアの備忘録。おもにプログラミングやネットワーク技術について、学んだことを自分の中で整理するためにゆるゆると書いています。ちゃんと検証できていない部分もあるのでご参考程度となりますが、誰かのお役に立てれば幸いです。

標準入力と引数

昔、Linux 上でのコマンドのワンライナーを勉強していた頃、パイプを使って後続のコマンドに標準入力からデータを渡すのと、引数でデータを渡すのとで、具体的に何が違うのかモヤっとして調べたことがあった。

今のところ、これらはデータが通る場所が違うと考えている。標準入力は OS(カーネル) が管理する I/O 用の領域を使い、引数の場合は後続のコマンドのメモリ上のスタック領域を使っているはず。つまり、カーネルの管理する領域を使ってデータのやり取りをするか、ユーザ領域を使ってデータのやり取りをするかの違いだと思っている。

標準出力と戻り値の違いも、同じように考えている。