Yazarlar Sözlük Makaleler Yardım Masası Gözlük Forum İstatistik

dup
Tüm Başlıklar XML

1.  Eldeki dosya tanımlayıcının (descriptor) bir kopyasını oluşturan* sistem çağrısı.
dup2 ise bir tanımlayıcıyı, belirli bir numaralı tanımlayıcı olarak atar.

Örneğin, fork yapmadan önce bir pipe oluşturun. Fork'tan sonra da iki süreç* içinden, birinde pipe'ın input ucunu dup ile o sürecin stdin'ine; diğerinde de output ucunu o sürecin stdout'una bağlayın. Sonra da süreçler içinde execlerinizi yapın. Bu sayede birinin çıktısını diğerinin girişine bağlayan bir program yazmış olursunuz.

Bu yazdığımızı bir kod örneği ile süslersek:
//Bu kod, "ls /home/sertw -la" komutunun çıktısını more ile "süzerek" vermektedir.
//yazan: sertw
#include <stdlib.h>
#include <errno.h>

int main(){
        int pip_des[2];
        int t;
        pipe(pip_des);
        t=fork();
        if( t<0 ){
                perror("fork failed\n");
                return EXIT_FAILURE;
        }
        if( t > 0 ){
                close(pip_des[1]);//wr-pipe
                close(0);       //stdin
                dup2(pip_des[0],0);//rd-pipe -> stdin
                execl("/bin/more","more",NULL);
                printf("%s",strerror(errno));
        }
        if( t == 0 ){
                close(pip_des[0]);//rd-pipe
                close(1);       //stdout
                dup2(pip_des[1],1);//wr-pipe -> stdout
                execl("/bin/ls","ls","/home/sertw","-la",NULL);
                printf("%s",strerror(errno));
        }
        return 0;
}

sertw
19 Şubat 2006 16:22
Bu konuda bildiklerinizi bizlerle paylaşabilirsiniz
Tabi bunun için yazarsanız giriş yapmalı, yazar değilseniz yazar olmalısınız.


Bu başlığa bkz veren girişlerin başlıkları nedir?

Bu başlığa bkz veren girişler başka hangi başlıklara bkz verdiler?
© 2005, Bilişim Kulübü. (1109 ms)
Ne yapabilirsin: SubtitleClick ile İngilizceni Geliştir, Çınar Framework ile kod yaz, Eglencelik.org'ta biraz eğlen