くだらねえ質問はここに書き込め! Part 240at LINUX
くだらねえ質問はここに書き込め! Part 240 - 暇つぶし2ch555:login:Penguin
20/06/08 15:45:35.28 ccNd4LDH.net
>>536,541
ちょっと違う。
・まずファイルディスクリプタはプロセスごとに空間が分かれている
・自プロセスの空間で任意の番号に再配置することはdup2システムコールで可能
・プログラム起動時(execve)には通常ファイルディスクリプタは引き継がれる
だから「起動前に3番のfdを開いておく必要がある」ようなプログラムなら一応実現可能
>>542 の例ではこういうことが起きている
・外側のシェルがpipeシステムコールで書き込み側と読み出し側のfdのペアを作成
・forkして子プロセスで書き込み側のfdをdup2で3に配置、読み出し側は閉じる
・子プロセスでexecveしてshを起動、shがfd=3へ書き込み
・外側のシェルが読み出し側のfdから読み出してfd=1へ書き込み


次ページ
続きを表示
1を表示
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch