2018年新卒入社でルータのファームウェアを開発しています。デバイスドライバやネットワークスタックなどの低レイヤーに興味があります。 背景 ある日のチャットにて 先輩「ゆるぼ NetBSDのsbin/, bin/, usr.sbin/, usr.bin/にあるコマンドでPTRレコードを引く方法」 私「もしかして: nc(1)」 先輩「えっと、それはどうやるんでしょう…?」 私「あっ… こう… DNSのクエリを自前で生成して…」 というリプライをしてしまったので、反省を兼ねてnc(1)を使って名前解決をしてみます。 クエリを作る クエリの生成にはprintf(1)を使います。printf "\xde\xad\xbe\xef" とすることで0xdeadbeefのバイナリ列を標準出力へ出すことができます。 echo(1)でもできそうですがNetBSD標準のecho(1)は-eオプションがなく、s