12 Temmuz 2020 Pazar

dup2 metodu - stdin stdout Akımlarını Yönlendirir

Giriş
Genellikle stdin, stdout gibi standart akımları bir pipe'a yönlendirmek için kullanılır.

Örnek
Elimizde şöyle bir komut olsunn
cat file.txt | grep -v match
Açıklaması şöyle. 2. maddede cat komutunun stdout akımı pipe'a yönlendiriliyor. 3. maddede grep komutunun stdin akımı pipe'a yönlendiriliyor.
- The shell creates a pipe (using the pipe() system call)

- The shell fork()s. The child process uses the dup2() system call to close its standard output stream and to duplicate the write end of the pipe to standard output. (After this, writes to standard output will go to the kernel buffer.) Then the child exec()s cat with the updated standard output.

- The shell fork()s again. The child uses the dup2() system call to close its standard input stream and to duplicate the read end of the pipe to standard input. (After this, reads from standard input will come from the kernel buffer.) Then the child exec()s grep with the updated standard input.

Hiç yorum yok:

Yorum Gönder