Számítástechnikai pufferben (az angol bufferből ), pl . h) puffer [1] [2] , pufferek [3] [4] egy memóriaterület , amelyet az adatok ideiglenes tárolására használnak bemenet vagy kimenet közben. Az adatcsere (bemenet és kimenet) külső eszközökkel és a számítógépen belüli folyamatokkal egyaránt megtörténhet . A pufferek megvalósíthatók hardverben vagy szoftverben , de a pufferek túlnyomó többsége szoftverben van megvalósítva. A pufferek akkor használatosak, ha eltérés van az adatok fogadásának és feldolgozási sebessége között, vagy ha ezek a sebességek változóak, például amikor a nyomtatási sorba kerül.
Ezek a kifejezések nem zárják ki egymást, és funkciójukat gyakran összekeverik, de céljuk különbség van. A puffer egy ideiglenes tároló, ahol nagy adatblokkokat egyesítenek vagy darabokra osztanak. Ez szükséges egy olyan tárolóeszközzel való interakcióhoz, amely nagy adattömbökkel működik, vagy ha az adatok átvitele eltérő sorrendben történik, mint amilyenben létrejöttek, és csak akkor kívánatos, ha a kis blokkok használata nem hatékony. A puffer használata akkor is előnyös, ha a pufferelt adatokat csak egyszer írjuk a pufferbe, és csak egyszer olvassuk ki belőle.
A gyorsítótár használata viszont azt jelenti, hogy az adatok gyakrabban kerülnek kiolvasásra a gyorsítótárból, mint oda írva. Célja a memóriaelérések számának csökkentése, nem pedig a hatékonyabbá tétel.
Az eszközök vagy folyamatok közötti adatcsere puffer segítségével történő megszervezésének módszerét pufferelésnek nevezzük . A PC -felhasználók egyik legismertebb példája a puffer ilyen használatára a Microsoft Windows vágólapja .
A programozás során puffereket is használnak a függvényektől származó adatok fogadására . A karakterlánc-értéket eredményező Windows API - függvények (például MultiByteToWideChar ) az egyik argumentumként a kiadandó pufferre mutató mutatót veszik fel . Íme egy példa egy C program forráskódrészletére , amely átalakítja a "Hello, World!" Unicode -ban :
// forrás karakterlánc CHARtext[] = "Hello World!"; // puffer az eredmény eléréséhez WCHAR puffer[256]; // karakterlánc konvertálása Unicode-ba MultiByteToWideChar(CP_ACP, 0, szöveg, strlen(szöveg) + 1, puffer, sizeof(puffer)/sizeof(WCHAR));