Bár maga a C nyelv definiciója az eddig leírtakon kívül lényegében nem tartalmaz egyebet, maga a szabvány definiál ún. standard könyvtárakat, illetve standrd könyvtári függvényeket. Ezek olyan elõredefiniált makrók, illetve lefordított és tárgykódú könyvtárakba szervezett függvények, amelyek majdnem minden C, vagy C++ rendszerben megtalálhatók, és hívási módjuk, illetve deklarációjuk az ANSI szabványnak megfelel. A következõkben a be- és kimenetet megvalósító szabványos függvények alapelveit, illtve a függvények közül néhányat tekintünk át. (Maguk a függvénydeklarációk, illetve a kapcsolódó makródefiniciók szabványos include file-okban találhatók.)
Ezek a függvények - a UNIX filozófiáját átvéve - eszközfüggetlenek, tehát egy program mindig úgy tekintheti az adatátvitel, hogy file-ból olvas és file-ba ír, jóllehet egy konkrét alkalmazásnál a program bemenete valójában többnyire a terminál billentyûzete, kimenete pedig a tarminál képernyõje, vagy egy nyomtató. A másik általános alapelv, hogy az adatátvitel egysége a byte, és a file-ok hossza is byte-ban meghatározott. A C nyelvben a byte, mint fogalom nem létezik, ezért itt char használandó. A be- és kivitel tárgyalását két fõ csoportba oszthatjuk: az alacsony szintû (low-level) és a folyam jellegû (stream) adatátvitelre.
A C-ben a file-ok kezelésének az MS-DOS operációs
rendszer alatt kétféle módja van. Ennek az az oka,
hogy a C nyelvben definiált '\n' újsor karakternek
az operációs rendszerben a CR-LF karakterpáros felel
meg. Azért, hogy szövegfile-okat portábilis módon
olvashassunk, a megfelelõ C rutinok elvégzik a szükséges
konverziókat, eltüntetve számunkra ezt a rendszersajátosságot.
Ha viszont bináris adatokat kezelünk, akkor a fenti konverzió
összekeveri és elrontja azokat. Ezért minden file-hoz
hozzá kell rendelni egy kezelési módot megnyitáskor,
ha ezt nem tesszük meg, az alapértelmezés általában
a szöveges, konverziós üzemmód, de ez beállítható
binárisra is. Az elõre megnyitott standard állományok
kezelési módja szöveges. A file kezelési módja
független attól, hogy alacsony szintû, vagy folyam jellegû
függvényekkel manipuláljuk.