dup2 nerede kullanılır
dup2() aslıda I/O redirection anlamına geliyor. En anlamlı kullanım yeri fork()+pipe() ikilisinde.
Eğer iki uygulama birbirlerine bilgi göndereceklerse ve normalde stdin/stdout ile çalışıyorlarsa, aralarında açılan pipe, dup2() kullanılarak stdin/stdout yapılır. Böylece uygulama konsola yazdığını düşünürken aslında pipe'a yazar.
ls -l | sort şeklinde iki uygulama açtığımızı düşünelim. ls parent uygulama, sort ise child uygulama olsun.
Parent process başlarken şöyle yapar. Böylece çıktısı pipe'a gider.
dup2() aslıda I/O redirection anlamına geliyor. En anlamlı kullanım yeri fork()+pipe() ikilisinde.
Eğer iki uygulama birbirlerine bilgi göndereceklerse ve normalde stdin/stdout ile çalışıyorlarsa, aralarında açılan pipe, dup2() kullanılarak stdin/stdout yapılır. Böylece uygulama konsola yazdığını düşünürken aslında pipe'a yazar.
ls -l | sort şeklinde iki uygulama açtığımızı düşünelim. ls parent uygulama, sort ise child uygulama olsun.
Parent process başlarken şöyle yapar. Böylece çıktısı pipe'a gider.
dup2(*pipeOUT, STDOUT_FILENO);
Child process ise şöyle yapar. Böylece pipe'tan gelen veriyi okuyabilir.dup2(*pipeIN, STDIN_FILENO);
Hiç yorum yok:
Yorum Gönder