ファイルから特定のバイト数を読み取り、fd0
それをファイルに書き込む必要があります。バイトは任意の値を持つことができます。
dd
バイト単位で止まるので書けないと思いますEOF
。私はキーボードではないのでif=/dev/stdin
動作しません。fd0
答え1
入力ファイルが提供されていない場合、dd(および他の多くのunixコマンド)はデフォルトでstdinから入力を取得します。
stdinはキーボードである必要はなく、しばしばそうではありません。
ddコマンドは、特にバイナリデータをコピーするために使用されます。それ以外の場合でも、EOF
Unixではバイトではありません。そのソースのデータがもう存在しないことを示すファイル記述子の条件。
キーボード(またはもっと重要なのはtty)では、Ctrl-D制御文字はEOFではありませんが(デフォルトでは)ttyに入力Backspaceバッファから文字を削除する方法と同様にEOF条件を入力させます。これは、ttyが「生」モードではなく「cooked」モードにあり、EOFの制御文字がttyから変更できる場合にのみ意味があります。
nバイト(ここでnは数字)を読み取る完全に実現可能なソリューションは次のとおりです。dd count=1 bs=n
キーボードで複数行を入力するか、すべてのデータを送信する前に一時停止がある場合、ddはそれをブロック境界として解釈します。追加すると、iflag=fullbock
ddはブロックを終了する前に合計10バイトを待ちます。