Schrijven naar standaardfout

Ruby:
Schrijven naar standaardfout

Hoe doe je dat:

In Ruby kunt je naar standaardfout schrijven met $stderr.puts of de verkorte vorm STDERR.puts. Hier is een snel voorbeeld:

puts "Dit gaat naar standaarduitvoer."
$stderr.puts "Dit gaat naar standaardfout."

# Verkorte versie:
STDERR.puts "Dit gaat ook naar standaardfout."

Open je terminal, voer het script uit, en merk op dat alles standaard toch samengevoegd wordt weergegeven. Het is nodig om te redirecten om de stromen te scheiden. Zo kun je dat doen:

ruby jouw_script.rb >uitvoer.txt 2>fout.txt

Dit commando redirect de standaarduitvoer naar uitvoer.txt en standaardfout naar fout.txt.

Diepere Duik

Het concept van stderr gaat terug tot de vroegste dagen van Unix. Het is ontworpen voor foutmeldingen om ervoor te zorgen dat ze zichtbaar zijn, zelfs als stdout wordt geredirect. Hoewel $stderr.puts en STDERR.puts gebruikelijk zijn in Ruby, zijn er andere manieren om naar stderr te schrijven, zoals warn gebruiken voor het schrijven van waarschuwingen of lagere niveau API’s zoals $stderr.write. Wat implementatie betreft, is stderr standaard ongebufferd, wat zorgt voor onmiddellijke uitvoer, terwijl stdout typisch gebufferd is.

Zie Ook