15 Ekim 2015 Perşembe

dup2

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(*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