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