Re: リダイレクトでの dup 関数の必要性って?
高津@ドーガです。
記事 <d0hmdp$1nc@utogw.gssm.otsuka.tsukuba.ac.jp> で
kunoさんは書きました
> 0:X 1:Y 2:Z
> という対応づけになっているのを
> 0:Y 1:Z 2:X
> のように「番号を割り当て直したい」としますよね。
無駄にファイルディスクリプタを確保しない、という方針としては
パズルも楽しいですけど、
dup2を使って
fd0 = dup(0);
fd1 = dup(1);
fd2 = dup(2); → 0:X 1:Y 2:Z fd0:X fd1:Y fd2:Z
close(0);
close(1);
close(2); → 0:- 1:- 2:- fd0:X fd1:Y fd2:Z
dup2(fd1,0);
dup2(fd2,1);
dup2(fd0,2); → 0:Y 1:Z 2:X fd0:X fd1:Y fd2:Z
close(fd0);
close(fd1);
close(fd2); → 0:Y 1:Z 2:X
という感じにするのはどうでしょうか?
わかりやすさを優先です。
PROJECT TEAM DoGA 高津正道 taka2@doga.jp
TBD00456@nifty.ne.jp
PROJECT TEAM DoGAのホームページ → http://doga.jp/
3月8日(火) 今日のマーフィーの法則 [マックリスティーのコンピュータの公理]
バックアップファイルが、まともにとれていることはない。
Fnews-brouse 1.9(20180406) -- by Mizuno, MWE <mwe@ccsf.jp>
GnuPG Key ID = ECC8A735
GnuPG Key fingerprint = 9BE6 B9E9 55A5 A499 CD51 946E 9BDC 7870 ECC8 A735