[04:53:17][roel@roel:~]$ sleep
bash: sleep: command not found
wa wil je precies gaan doen dan? bufferen doet de kernel zelf wel, als je iets hebt als
ls | more
ofzo, dan wordt er ook al gebufferd, maar dat hoef je dan zelf niet meer te doen. Dat is het handige van de pipe!
ls | more
ofzo, dan wordt er ook al gebufferd, maar dat hoef je dan zelf niet meer te doen. Dat is het handige van de pipe!
Verwijderd
tenzij je de data uit de buffer realtime wilt kunnen uitlezen. Een pipe (als in | ) slaat alle uitvoer van het eerste commando op en stuurt deze naar de invoer van het tweede. Dit gebeurt dus sequentieel (dwz het tweede commando wordt pas gestart nadat het eerste is beeindigd)
nee, een pipe | heeft een buffer van 4096 bytes (4kb), en ik wil dat dat bijv 100kb wordt..
maakt me niet uit hoe, fifo's, pipes of op een of andere manier geheugen daarvoor abusen.. als 't maar werkt met een paar simpele commando's
Het idee is dus dat ik nite 27432432 regels code moet kloppen
maakt me niet uit hoe, fifo's, pipes of op een of andere manier geheugen daarvoor abusen.. als 't maar werkt met een paar simpele commando's
[04:53:17][roel@roel:~]$ sleep
bash: sleep: command not found
Mandrake heeft als contrib het programma 'buffer' dat precies doet wat je wilt, voorbeeld:
commando1 | buffer | commando2
Quote van rpm -qi buffer:
commando1 | buffer | commando2
Quote van rpm -qi buffer:
This is a program designed to speed up writing tapes on remote tape
drives. After startup it splits itself into two processes. The first
process reads (and reblocks) from stdin into a shared memory buffer.
The second writes from the shared memory buffer to stdout. Doing it this way
means that the writing side effectly sits in a tight write loop and
doesn't have to wait for input. Similarly for the input side. It is
this waiting that slows down other reblocking processes, like dd.
Verwijderd
Wat jij wilt zijn gewoon buffers dus. Die kun je dus gewoon maken in c ofzo. Of je pakt een hash in Perl (eventueel een hash gekoppeld aan een bestand).
#define max_buf 4096
Wat ik trouwens niet zo goed snap is de hele bedoeling. je wilt een /tmp/filename vullen met iets maar dat kan toch zowieso wel ? Pipes zijn alleen maar om informatie tussen programma's uit te wisselen op een simpele manier. De output van het ene programma kan dienen als invoer voor het andere. Wat maakt het nou uit hoe groot dan bijvoorbeeld zo'n buffertje is zolang de informatie maar overkomt. Nou ja goed echte buffers programmeer jezelf enzo. C ligt dan gewoon voor de hand. Je kunt trouwens ook bijvoorbeeld programma's schrijven die shared memory gebruiken. Dat is een andere manier van pipen zeg maar
Ow ik zit dit allemaal nog s door te lezen ik begrijp je nu beter
Maak gewoon je eigen progje in C met een dikke buffer en doe dan wat hierboven staat "prog | eigen prog | ander prog" dan ben je eral. Of gebruik gewoon wat bkor zegt.
#define max_buf 4096
Wat ik trouwens niet zo goed snap is de hele bedoeling. je wilt een /tmp/filename vullen met iets maar dat kan toch zowieso wel ? Pipes zijn alleen maar om informatie tussen programma's uit te wisselen op een simpele manier. De output van het ene programma kan dienen als invoer voor het andere. Wat maakt het nou uit hoe groot dan bijvoorbeeld zo'n buffertje is zolang de informatie maar overkomt. Nou ja goed echte buffers programmeer jezelf enzo. C ligt dan gewoon voor de hand. Je kunt trouwens ook bijvoorbeeld programma's schrijven die shared memory gebruiken. Dat is een andere manier van pipen zeg maar
Ow ik zit dit allemaal nog s door te lezen ik begrijp je nu beter
Hmm, zou je kunnen kijken waar dat proggie te downloaden is? Ik zie wel een hoop buffer proggies op freshmeat, maarja, mandrake zal wel een goed buffer proggie uitgezocht hebben. Of nee, ik kan het ook wel kijken.. Naja, als je het toevallig snel kan zien zou ik het graag willen weten, want ik moet nu met rpm find klooien enzo, gebruik (gelukkig) namelijk geen rpm distro. rpm -qi buffer doet het vrij latig dan zegmaar..bkor schreef op 31 augustus 2002 @ 23:18:
Mandrake heeft als contrib het programma 'buffer' dat precies doet wat je wilt, voorbeeld:
commando1 | buffer | commando2
Quote van rpm -qi buffer:
[...]
[04:53:17][roel@roel:~]$ sleep
bash: sleep: command not found
Jammergenoeg staat er geen URL bij. Ik had gisteren wel even gekeken waar het te downloaden was en kon alleen http://gd.tuwien.ac.at/utils/archivers/buffer/ vinden (losse bestanden, geen tar.gz).
Ik heb de tar.bz2 +patch uit de .src.rpm gehaald:
http://www.xs4all.nl/~dgk/buffer-1.19.patch.bz2
http://www.xs4all.nl/~dgk/buffer-1.19.tar.bz2
Ik heb de tar.bz2 +patch uit de .src.rpm gehaald:
http://www.xs4all.nl/~dgk/buffer-1.19.patch.bz2
http://www.xs4all.nl/~dgk/buffer-1.19.tar.bz2
Denk dat ik een nieuwer (beter?) buffer proggie heb gevonden... Moet het nog wel ff compilen.
Thanks anyways, ik zal laten weten of het werkt
Thanks anyways, ik zal laten weten of het werkt
[04:53:17][roel@roel:~]$ sleep
bash: sleep: command not found
wew! 't werkt!:)
't programma heet bfr, is te vinden op freshmeat..
't programma heet bfr, is te vinden op freshmeat..
[04:53:17][roel@roel:~]$ sleep
bash: sleep: command not found
Pagina: 1