Gå til innhold

Anbefalte innlegg

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
Videoannonse
Annonse

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
  • 2 uker senere...

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...