くだらねえ質問はここに書き込め! Part 180
at LINUX
266:login:Penguin
10/01/07 02:33:57 Nm3OilD9
>>265
シェルのリダイレクトは、実行するコマンドのプロセスのファイルディスクリプタを、
dup2 システムコールを使って、別のディスクリプタへ結びつける機能です
具体的には以下のようなコードに直接対応します
// > outfile 2>&1 の場合
int fd = open("outfile", O_WRONLY|O_CREAT|O_TRUNC, 0644); dup2(fd, STDOUT_FILENO); // > outfile
dup2(STDOUT_FILENO, STDERR_FILENO); // 2>&1
// > outfile 2> outfile の場合
int fd1 = open("outfile", O_WRONLY|O_CREAT|O_TRUNC, 0644); dup2(fd1, STDOUT_FILENO); // > outfile
int fd2 = open("outfile", O_WRONLY|O_CREAT|O_TRUNC, 0644); dup2(fd2, STDERR_FILENO); // 2> outfile
> outfile 2> outfile というのは同じ名前のファイルを独立に作って、それぞれが書き込むという意味になります
よって標準出力と標準エラーの両方を書き込むことはできません(そういう意味のコードに対応します)
次ページ続きを表示1を表示最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
5368日前に更新/201 KB
担当:undef