>>
については、ファイルを開くときのフラグを [O_WRONLY; O_APPEND; O_CREAT]
に変えれば他は >
と同じです。
2>
については、 dup2 fd stdout
を dup2 fd stderr
に変えれば他は >
と同じです。
2>1
については、コマンドを実行する前に dup2 stderr stdout
を実行すればよいです。
<<
については、 シェル sh
は /tmp
フォルダに一時的なファイルを作って <<
に続く文字列を保存し、標準入力をこのファイルにリダイレクトしてからコマンドを実行する必要があります。これとは別の解法はコマンドの標準入力をパイプの出力につなぎ、子プロセスを使ってそのパイプの入力に <<
に続く文字列を入力することです。