Standard input-output-strömmar i system som UNIX (och några andra) är processtrådar som har ett nummer (handtag) reserverat för att utföra vissa "standard" funktioner. Vanligtvis (men inte nödvändigtvis) är dessa handtag redan öppna när uppgiften ( den körbara filen ) startas.
Ström nummer 0 (stdin) är reserverad för att läsa användarkommandon eller input.
När programmet körs interaktivt är det som standard inriktat på att läsa från en enhet för textanvändargränssnitt ( tangentbord ). UNIX-skalet (och skal från andra system) låter dig ändra målet för denna ström med <tecknet " ". Systemprogram ( demoner , etc.) använder i allmänhet inte denna tråd.
Ström nummer 1 (stdout) är reserverad för utdata, vanligtvis (men inte nödvändigtvis) text .
När programmet körs interaktivt är det som standard inriktat på att skriva till visningsenheten ( monitor ). UNIX-skalet (och skal från andra system) låter dig omdirigera denna ström med >tecknet " ". Verktyg för att köra program i bakgrunden (som nohup ) omdirigerar vanligtvis denna ström till en .
Ström nummer 2 (stderr) är reserverad för att visa diagnostik- och felsökningsmeddelanden i textform.
Oftast är syftet med denna ström detsamma som stdout, men till skillnad från den ändras inte syftet med stderr-strömmen när " >" och skapar rör (" |"). Det vill säga, felsökningsmeddelandena från processen vars utdata omdirigeras kommer fortfarande att komma till användaren. UNIX-skalet låter dig ändra målet för denna ström med " 2>"-konstruktionen. Till exempel, för att undertrycka utmatningen av denna ström, är det inte ovanligt att skriva "2> /dev/null ".
POSIX felhanteringsfunktionsfel används i programmeringsspråken C och C++ för att skriva ut ett felmeddelande till stderr baserat på det senaste felnumret som lagrats i errno .
I DOS kan siffrorna 4 (stdprn) och 5 (stdaux) [1] också användas .