くだらねえ質問はここに書き込め! Part 180at LINUX
くだらねえ質問はここに書き込め! Part 180 - 暇つぶし2ch266: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