Standardowe strumienie: Różnice pomiędzy wersjami

[wersja nieprzejrzana][wersja nieprzejrzana]
Usunięta treść Dodana treść
m lnkfix
m integracja
Linia 16:
 
[[Deskryptor pliku]] standardowego strumienia wejścia wynosi 0 (zero); odpowiadającą mu zmienną z ''<stdio.h>'' jest <tt>FILE* stdin</tt>, a z ''<iostream>'' jest <tt>std::cin</tt>.
===Przykład===
bash < skrypt.sh # spowoduje wykonanie instrukcji zawartych w pliku
# skrypt.sh przez interpretator bash
cat < plik.txt # taki sam efekt jak cat plik.txt
 
==Standardowy strumień wyjścia ''(stdout)''==
Linia 22 ⟶ 26:
 
[[Deskryptor pliku]] standardowego strumienia wyjścia wynosi 1 (zero); odpowiadającą mu zmienną z ''<stdio.h>'' jest <tt>FILE* stdout</tt>, a z ''<iostream>'' jest <tt>std::cout</tt>. Aby przekierować strumień błędów w powłokach bazowanych na [[sh]] należy użyć znaków <tt>></tt> (jeżeli chcemy zastąpić adres docelowy danymi ze strumienia) lub <tt>>></tt> (jeżeli chcemy dopisać dane na końcu pliku docelowego).
===Przykład===
echo "ABC" > plik.txt # spowoduje wyczyszczenie pliku plik.txt (lub utworzenie
# jeśli nie istnieje) i dopisanie znaków ABC
echo "CBA" >> plik.txt # spowoduje dopisanie znaków CBA na koniec pliku plik.txt
# lub jego utworzenie i dopisanie tych znaków
cat plik1.txt > plik2.txt # efekt identyczny jak w przypadku polecenia
# cp plik1.txt plik2.txt
 
==Standardowy strumień błędów ''(stderr)''==
Linia 29 ⟶ 42:
 
[[Deskryptor pliku]] standardowego strumienia wyjścia wynosi 2 (zero); odpowiadającą mu zmienną z ''<stdio.h>'' jest <tt>FILE* stderr</tt>. ''<iostream>'' zapewnia dwie zmienne do obsługi strumienia błędów - <tt>std::cerr</tt> (niebuforowana) <tt>std::clog</tt> (buforowana). Aby przekierować strumień błędów w powłokach bazowanych na [[sh]] należy użyć znaków <tt>2></tt>.
===Przykład===
$ rm -rf / # spowoduje usunięcie wszystkich plików na dysku,
# do których dany użytkownik ma prawa pisania ("w") oraz
# wyświetlenie komunikatów o tym, że nie można usunąć
# tych plików, do których użytkownik nie posiada praw ("w")
$ rm -rf / 2> /dev/null # spowoduje usunięcie wszystkich plików na dysku,
# do których dany użytkownik ma prawa pisania ("w"),
# a komunikaty o błędach zostaną przekierowane
# do /dev/null, czyli śmietnika
 
==Zobacz też==