Stdout: Difference between revisions

From ICO wiki
Jump to navigationJump to search
No edit summary
No edit summary
 
(17 intermediate revisions by the same user not shown)
Line 1: Line 1:
'''mustand'''<br>
'''stdout''' (standard output) on UNIX süsteemides standardväljund. Vt. ka [[Stdin|stdin]] ja [[Stderr|stderr]]
<br>
 
'''stdout''' (standard output) on UNIX süsteemides standardväljund. Vt. ka [[Stdoin|stdin]] ja [[Stderr|stderr]]
</br>
== Standardvood ==
== Standardvood ==
[[File:stdstreams.png|thumb|right|Joonis 1. The standard streams for input, output, and error. Allikas: https://en.wikipedia.org/wiki/Standard_streams]]Linuxis ja teistes Unix-i laadsetes süsteemides on kasutusel standard andmevood. Iga protsess käivitatakse automaatselt koos kolme andmevooga: sisendvoog stdin ja väljundvood [[Stdout|stdout]] (standard output) ja [[Stderr|stderr]] (standard error). Need vood kujutavad endast spetsiaalset tüüpi faili ja võivad sisaldada ''plain text'' andmeid.<ref>[http://www.linfo.org/standard_input.html http://www.linfo.org/standard_input.html]</ref>
[[File:stdstreams.png|thumb|right|Joonis 1. The standard streams for input, output, and error. Allikas: https://en.wikipedia.org/wiki/Standard_streams]]Linuxis ja teistes Unix-i laadsetes süsteemides on kasutusel standardvood. Iga protsess käivitatakse automaatselt koos kolme andmevooga: sisendvoog stdin ja väljundvoog [[Stdout|stdout]] (standard output) ja veavoog [[Stderr|stderr]] (standard error). Need vood kujutavad endast spetsiaalset tüüpi faili ja sisaldavad ''plain text'' andmeid.<ref>Standard Input Definition http://www.linfo.org/standard_input.html</ref><ref>Standard Output Definition http://www.linfo.org/standard_output.html</ref><ref>Standard Error Definition http://www.linfo.org/standard_error.html</ref>
Igale avatud failile omistatakse ka arvuline deskriptor. stdin, stdout ja stderr arvulised failideskriptorid on vastavalt 0,1 ja 2.
Igale avatud failile omistatakse ka arvuline deskriptor. stdin, stdout ja stderr arvulised failideskriptorid on vastavalt 0,1 ja 2.
Tüüpiliselt on need vood seotud terminaliga (tty), kuid võivad ka viidata teistele failidele või seadmetele, kui protsess on vastavalt seadistatud.  
Tüüpiliselt on need vood seotud terminaliga (tty), kuid võivad ka viidata teistele failidele või seadmetele, kui protsess on vastavalt seadistatud.  
<ref>[https://linux.die.net/man/3/stdin https://linux.die.net/man/3/stdin]</ref>
<ref>stdin(3) - Linux man page https://linux.die.net/man/3/stdin</ref>
Tavaliselt on standardsisendiks klaviatuurilt sisestatav tekst ja standardväljund ning standarderror kuvatakse ekraanile.
Tavaliselt läheb standardsisendvoogu klaviatuurilt sisestatav tekst ning väljundvoog ning veavoog kuvatakse ekraanile.


== stdin ümbersuunamine ==
== stdout ümbersuunamine ==
Tänu standardvoole on programmi väljundit lihtne erinevatesse väljundseadmesse saata, näiteks monitori või printerisse. Samuti saab standardvoo edasi suunata mõnele teisele programmile.


Vaikimisi suunatakse stdout sisu ekraanile. Selleks, et stdout faili suunata tuleb kasutada &gt; märki. Näiteks:
Kuna standarvoog sisaldab ''plain text'' andmeid on selle sisu inimloetav.  
<code>ls > file_list.txt</code>


In this example, the ls command is executed and the results are written in a file named file_list.txt. Since the output of ls was redirected to the file, no results appear on the display.
Vaikimisi suunatakse stdout sisu ekraanile. Selleks, et stdout faili suunata tuleb kasutada <code>&gt;</code> operaatorit. Näiteks:<br>
<br>
<code>ls > list.txt</code><br>
<br>
Selles näites suunatakse ls käsu väljund ekraani asemel faili list.txt.<br>


Each time the command above is repeated, file_list.txt is overwritten (from the beginning) with the output of the command ls. If you want the new results to be appended to the file instead, use ">>" like this:
Kui tahta, et uuesti sama käsu sisestamisel ei kirjutataks faili list.txt üle vaid lisataks väljund faili lõppu, tuleb kasutada operaatorit <code>&gt;&gt;</code> (append). Näiteks:<br>
 
<br>
[me@linuxbox me]$ ls >> file_list.txt
<code>ls >> list.txt</code><br>
 
<br>
When the results are appended, the new results are added to the end of the file, thus making the file longer each time the command is repeated. If the file does not exist when you attempt to append the redirected output, the file will be created.. To redirect standard output to a file, the ">" character is used like this:
Käsu kordamisel kirjutatakse tulemus faili list.txt lõppu. Kui faili ei eksisteeri, siis see luuakse.
 
[me@linuxbox me]$ ls > file_list.txt
 
In this example, the ls command is executed and the results are written in a file named file_list.txt. Since the output of ls was redirected to the file, no results appear on the display.


Each time the command above is repeated, file_list.txt is overwritten (from the beginning) with the output of the command ls. If you want the new results to be appended to the file instead, use ">>" like this:
Programmi väljundi võib suunata ka <code>/dev/null</code> faili - see on spetsiaalne fail, mille sisend automaatselt kustutatakse.
Näiteks, kui on soov, et mõni programm töötaks taustal ja väljundit ignoreeritaks, siis võib programmi käivitada nii:<br>


[me@linuxbox me]$ ls >> file_list.txt


When the results are appended, the new results are added to the end of the file, thus making the file longer each time the command is repeated. If the file does not exist when you attempt to append the redirected output, the file will be created.
<code>command > /dev/null</code><br>


==Autor==
==Autor==

Latest revision as of 21:19, 27 January 2017

stdout (standard output) on UNIX süsteemides standardväljund. Vt. ka stdin ja stderr

Standardvood

Joonis 1. The standard streams for input, output, and error. Allikas: https://en.wikipedia.org/wiki/Standard_streams

Linuxis ja teistes Unix-i laadsetes süsteemides on kasutusel standardvood. Iga protsess käivitatakse automaatselt koos kolme andmevooga: sisendvoog stdin ja väljundvoog stdout (standard output) ja veavoog stderr (standard error). Need vood kujutavad endast spetsiaalset tüüpi faili ja sisaldavad plain text andmeid.[1][2][3]

Igale avatud failile omistatakse ka arvuline deskriptor. stdin, stdout ja stderr arvulised failideskriptorid on vastavalt 0,1 ja 2. Tüüpiliselt on need vood seotud terminaliga (tty), kuid võivad ka viidata teistele failidele või seadmetele, kui protsess on vastavalt seadistatud. [4] Tavaliselt läheb standardsisendvoogu klaviatuurilt sisestatav tekst ning väljundvoog ning veavoog kuvatakse ekraanile.

stdout ümbersuunamine

Tänu standardvoole on programmi väljundit lihtne erinevatesse väljundseadmesse saata, näiteks monitori või printerisse. Samuti saab standardvoo edasi suunata mõnele teisele programmile.

Kuna standarvoog sisaldab plain text andmeid on selle sisu inimloetav.

Vaikimisi suunatakse stdout sisu ekraanile. Selleks, et stdout faili suunata tuleb kasutada > operaatorit. Näiteks:

ls > list.txt

Selles näites suunatakse ls käsu väljund ekraani asemel faili list.txt.

Kui tahta, et uuesti sama käsu sisestamisel ei kirjutataks faili list.txt üle vaid lisataks väljund faili lõppu, tuleb kasutada operaatorit >> (append). Näiteks:

ls >> list.txt

Käsu kordamisel kirjutatakse tulemus faili list.txt lõppu. Kui faili ei eksisteeri, siis see luuakse.

Programmi väljundi võib suunata ka /dev/null faili - see on spetsiaalne fail, mille sisend automaatselt kustutatakse. Näiteks, kui on soov, et mõni programm töötaks taustal ja väljundit ignoreeritaks, siis võib programmi käivitada nii:


command > /dev/null

Autor

Liina Abner
DK23
jaanuar 2017

Allikad

  1. Standard Input Definition http://www.linfo.org/standard_input.html
  2. Standard Output Definition http://www.linfo.org/standard_output.html
  3. Standard Error Definition http://www.linfo.org/standard_error.html
  4. stdin(3) - Linux man page https://linux.die.net/man/3/stdin