On 30-12-2003 10:22 AM Togu Raja Tamba wrote:

> Saya baru saja membaca Documentasi PostgreSQL 7.4 khususnya pada bagian
> Server Administration. Di situ saya menemukan istilah stdout dan stderr.
> Tolong dong diterangkan apa maksud kedua istilah tsb.

Di unix (atau C?) selalu ada tiga stream standard (bawaan) yaitu
standard output (stdout), standard input (stdin) dan standard error
(stderr).

stdout adalah stream default tempat keluarnya output (misalnya kalo
melakukan printf()), stdin adalah stream default tempat mengambil input
(misalnya kalo melakukan getc()), sedangkan stderr adalah stream default
yg seharusnya digunakan utk mengeluarkan error messages.

Di bash, stdin, stdout dan stderr masing2 diberi nomer file descriptor
(fd) yg fixed yaitu 0, 1 dan 2 respectively. Makanya kalo melakukan
redirection sering kita lihat seperti:

        some_command >output.txt 2>&1 <input.txt

"2>&1" artinya fd 2 dijadikan satu dengan fd 1, lalu ">output.txt"
artinya fd 1 di-redirect ke file output.txt, nah karena fd 2 dan fd 1
sudah digabung, maka keduanya akan masuk ke output.txt (assuming
some_command mengeluarkan output ke stdout dan stderr), sedangkan
"<input.txt" artinya isi buffer stdin dengan file input.txt.

Cobain aja pake perl yg gampang:
#!/usr/bin/perl -- simpen sebagai tes.pl lalu chmod +x
print STDOUT "ini ke stdout";
print STDERR "ini ke stderr";
print <>; # print defaultnya ke STDOUT, <> artinya ambil dr STDIN

Lalu jalanin gini:

        echo "ini dari stdin ke stdout" > stdin.txt

        ./tes.pl >output.txt 2>&1 <stdin.txt

        ./tes.pl 1>stdout.txt 2>stderr.txt <stdin.txt

trus lihat isi file output.txt, stdout.txt dan stderr.txt.

HTH,

Ronny

-- 
Berhenti langganan: [EMAIL PROTECTED]
Arsip dan info: http://linux.or.id/milis.php

Kirim email ke