JeffK Skrevet 17. juni 2008 Del Skrevet 17. juni 2008 Slik jeg forstår det, virker pipes uten at et program trenger å srkives med tanke på det, ettersom stdout fra det ene bare sendes til stdin på det andre. Om man f.eks. kjører ls | less får man "tilbake" keyboardet for hver hele skjerm. Hvordan virker dette? Hvordan klarer less å koble tastaturet tilbake som stdin? Lenke til kommentar
teflonpanne Skrevet 19. juni 2008 Del Skrevet 19. juni 2008 Joda, de fleste unix-programmer er skrevet for at de skal virke med pipes og sånn. Les litt om non-blocking IO, asynchronous IO, IO multiplexing og polling. Funksjonen select tar f.eks flere sett med fildeskriptorer for skriving og lesing og sier fra hvilke fildeskriptorer som har data som venter på å bli lest eller skrevet. Jeg vet ikke akkurat hvordan less er implementert, men den bruker sikkert select for å sjekke om noen har trykket på tastaturet og så leser den fra tastaturet som vanlig hvis det er data som venter. Lenke til kommentar
Emancipate Skrevet 19. juni 2008 Del Skrevet 19. juni 2008 Du kan jo ta en titt på kildekoden: http://archive.ubuntu.com/ubuntu/pool/main...394.orig.tar.gz Lenke til kommentar
Dj_Offset Skrevet 30. juni 2008 Del Skrevet 30. juni 2008 Om man f.eks. kjørerls | less får man "tilbake" keyboardet for hver hele skjerm. Hvordan virker dette? Hvordan klarer less å koble tastaturet tilbake som stdin? less åpner /dev/tty og leser denne som egen fildeskriptor. Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå