Angielskifrancuskihiszpański

Ad


Ulubiona usługa OnWorks

cstream – Online w chmurze

Uruchom cstream w bezpłatnym dostawcy hostingu OnWorks w systemie Ubuntu Online, Fedora Online, emulatorze online systemu Windows lub emulatorze online systemu MAC OS

To jest polecenie cstream, które można uruchomić w bezpłatnym dostawcy hostingu OnWorks przy użyciu jednej z naszych wielu bezpłatnych stacji roboczych online, takich jak Ubuntu Online, Fedora Online, emulator online systemu Windows lub emulator online systemu MAC OS

PROGRAM:

IMIĘ


c-strumień — bezpośrednie strumienie danych z ograniczeniem przepustowości, FIFO, audio, duplikacją i
rozszerzona obsługa raportowania.

STRESZCZENIE


c-strumień [-b num] [-B num] [-i filename] [-I ciąg] [-l] [-n num] [-o filename] [-O ciąg]
[-p filename] [-t num] [-T num] [-v num] [-V] [filename]

OPIS


Cstream filtruje strumienie danych, podobnie jak narzędzie UNIX dd(1). Ma bardziej tradycyjny
składnia wiersza poleceń, obsługa precyzyjnego ograniczania przepustowości i raportowania oraz obsługa
FIFO. Limity danych i obliczenia przepustowości będą działać w przypadku plików > 4 GB.

Cstream czyta ze standardowego wejścia i zapisuje na standardowe wyjście, jeśli nie ma żadnych nazw plików
dany. W razie potrzeby „generuje” lub „pobiera” dane.

Opcje:

-b num Ustaw rozmiar bloku używanego do odczytu/zapisu num. Wartość domyślna to 8192 bajtów.

-B num Wejście buforowe do num bajtów przed zapisem. Wartość domyślna to rozmiar bloku. To jest
błąd podczas ustawiania wartości poniżej rozmiaru bloku. Przydatne przy zapisywaniu taśm
i podobne, które preferują kilka dużych zapisów z wielu małych.

-c num Jednoczesna operacja. Użyj osobnego procesu dla danych wyjściowych. Jest to szczególnie przydatne
w połączeniu z opcją -B.
0 = użyj tylko jednego procesu (domyślnie)
1 = proces odczytu będzie buforowany
2 = proces zapisu będzie buforowany
3 = oba procesy będą buforowane.
W połączeniu z dużym rozmiarem bufora często powoduje to obciążenie pamięci
mocno, za każdym razem, gdy czytnik przesyła zebrany bufor do
pisarz. Jeśli użyjesz -c 3 i masz rozmiar bufora 128 megabajtów, 256 MB
pamięć zostanie dotknięta natychmiast.

-i num

-o num Ustaw nazwy plików, które będą używane odpowiednio jako dane wejściowe i wyjściowe. Jeśli plik wyjściowy
nazwa to „-”, dane zostaną po prostu odrzucone. Jeśli nazwa pliku wejściowego to „-”, dane zostaną zapisane
zostać wygenerowane „z próżni”. Jeśli te opcje nie zostaną podane, będzie to stdin/stout
używany. Jeśli musisz dać -o or -i opcje i chcesz stdin/stdout, określ
pusty ciąg, taki jak ten:

cstream -i''

Jeśli obsługa protokołu TCP została wkompilowana (domyślnie), spróbuje to zrobić nazwa hosta: numer portu
połącz się z określonym hostem na określonym porcie, a :portnumber otworzy plik a
TCP na komputerze lokalnym i poczekaj na nawiązanie połączenia. BEZPIECZEŃSTWO
UWAGA: cstream nie zawiera mechanizmu ograniczającego hosty, które mogą się z nim łączyć
Port. Jeśli Twój komputer nie ma innych filtrów sieciowych, każdy będzie mógł to zrobić
połączyć.

-I ciąg

-O ciąg
Określ odpowiednio typ pliku wejściowego i wyjściowego.
Jeśli ciąg
zawiera „f”, zostanie utworzone fifo.
Jeśli ciąg
zawiera „a”, zakłada się, że plik jest plikiem audio zgodnym z Opensound
urządzeniu i zostaną przełączone na ustawienia podobne do CD.
Jeśli ciąg
zawiera „t”, kopia strumienia zostanie wysłana do deskryptora pliku 3.
Jeśli ciąg
zawiera „N”, protokół TCP nie będzie używany dla tego pliku, nawet jeśli nazwa zawiera „:”.

-l Uwzględnij liczbę linii w statystykach.

-n num Ogranicz całkowitą ilość danych do num. Jeśli dostępnych będzie więcej danych wejściowych, tak się stanie
zostać wyrzucony, c-strumień zakończy się po osiągnięciu limitu. Jeśli jest mniej
wejścia, limit nie zostanie osiągnięty i nie będzie sygnalizowany żaden błąd.

num może mieć końcowe „k”, „m” lub „g”, co oznacza kilobajty, megabajty lub
Gigabajty (gdzie Kilo = 1024). Dotyczy to wszystkich opcji numerycznych.

-p filename
Zapisz identyfikator procesu cstream do filename. Jeśli cstream używa osobnego modułu zapisującego
proces (opcja -c), jest to pid procesu nadrzędnego (czytnika).

-t num Ogranicz przepustowość strumienia danych do num bajtów/sekundę. Ograniczanie odbywa się o godz
po stronie wejściowej możesz polegać na tym, że cstream nie zaakceptuje więcej niż ta stawka. Jeśli
liczba, którą podałeś jest dodatnia, cstream gromadzi błędy i stara się zachować
stawka ogólna o określonej wartości, za całą sesję. Jeśli dasz negatyw
numer, jest to górny limit dla każdej pary wywołań systemowych odczyt/zapis. Innymi słowy:
liczba ujemna nigdy nie przekroczy tego limitu, liczba dodatnia przekroczy
aby zrekompensować wcześniejsze niepełne wykorzystanie.

-T num Raportuj przepustowość co liczbę sekund.

-v num Ustaw poziom szczegółowości na num. Domyślnie jest ustawiona na 0, co oznacza, że ​​nie ma żadnych komunikatów
wyświetlane, o ile nie wystąpią żadne błędy. Wartość 1 oznacza całkowitą ilość danych
i przepustowość zostaną wyświetlone na końcu przebiegu programu. Wartość 2 oznacza
raportowana będzie także szybkość transferu od zakończenia pierwszej pary odczytu/zapisu
(przydatne, gdy występuje początkowe opóźnienie). Wartość 3 oznacza, że ​​również będzie
oddzielne pomiary dla odczytu i zapisu. Ta opcja wymaga dużej ilości zasobów i
obecnie nie jest zaimplementowany. Wartość 4 oznacza, że ​​uwagi dotyczą każdego pojedynczego elementu
odczyt/zapis zostanie wyświetlony. Wysokie wartości obejmują wszystkie typy wiadomości niższe
wartości.

-V Wydrukuj numer wersji na standardowe wyjście i wyjdź z 0.

filename Zostanie użyta pojedyncza nazwa pliku jako ostatni argument bez przełącznika opcji
plik wejściowy, jeśli -i nie zostało użyte.

SIGUSR1

PODPIS Wysyłanie SIGUSR1 (lub SIGINFO, które jest zwykle mapowane na Control-T na klawiaturze)
do cstream powoduje wyświetlanie przepustowości na stderr. Strumień będzie
kontynuuj, jak gdyby nic się nie stało.

SIGUSR2 Wyjdź i zgłoś przepustowość, jeśli zostaniesz o to poproszony.

ZGŁOSZENIE Zauważyłem, że zbyt często przypadkowo wysyłam SIGHUP. Ale ignorowanie lub niewłaściwe użycie
SIGHUP nie jest dla mnie opcją. Zatem kiedy c-strumień otrzymał SIGHUP, będzie czekać 5
sekundy na kolejne SIGHUP, aby dać użytkownikom szansę na poprawienie ewentualnego błędu.
Jeśli nie zostanie odebrany żaden dodatkowy SIGHUP, c-strumień zabija się SIGHUP.

PRZYKŁADY


c-strumień -o plik tmp -v 1 -n 384m -i -
Zapisuje do pliku 384 megabajty nieokreślonych danych plik tmp i wyświetlaj szczegółowe informacje
przepustowość. Stanowi dobry punkt odniesienia, prędkość / dev / null różni się zbytnio od
system do systemu.

c-strumień -i plik tmp -v 1 -n 384m -o -
Wczytaj ponownie ten sam plik i odrzuć dane.

c-strumień -b 2000 -t 10000 / var / log / messages
Wyświetli plik z mniej więcej oglądalną szybkością.

zrzucać 0 sf 400000 - / | c-strumień -v 1 -b 32768 -o /dev/rst0 -p plik pid

zabić -USR1 kot plik pid`
Napisz wyjście z zrzucać(1) na taśmę. Za każdym razem, gdy sygnał jest wysyłany, przepustowość
i dotychczasowa szybkość transmisji danych zostaną wyświetlone.

c-strumień -t 176400 -i /dev/dsp0 -I f -o -
Tworzy rodzaj emulatora karty dźwiękowej, którego można używać do testowania aplikacji audio
potrzebuję czegoś do zapisu, co ogranicza szybkość transmisji danych, tak jak robi to prawdziwa karta dźwiękowa. Ten
oczywiście nie działa, gdy aplikacja próbuje zapisać dane za pomocą mmap(2) i
aplikacja musi ignorować błędy, gdy próbuje ustawić parametry karty dźwiękowej za pomocą
ioctls(2).

c-strumień -t 176400 -i /dev/dsp0 -I f -o /dev/dsp1 -O f
Podobny emulator karty dźwiękowej, z tą różnicą, że pozwala na przechwycenie danych
aplikacje wysyłają do niego z drugiego fifo, zachowując jednocześnie dokładny czas.

c-strumień -Oa -o /dev/dsp0 mójhost.mojadomena.com:17324
Łączy port 3333 na hoście myhost.mydomain.com i wszelkie znalezione tam dane
zostać przesłane do karty dźwiękowej, z odpowiednimi ustawieniami zapewniającymi odtwarzanie stereo w jakości CD.

c-strumień -i mójplikaudio.raw -o : 17324
Spowoduje to otwarcie serwera TCP na porcie 17324 i oczekiwanie, aż ktoś się połączy (np
przykład wiersz poleceń z poprzedniego przykładu). Następnie wyśle ​​zawartość
pliku myaudiofile.raw w dół strumienia TCP (w poprzednim przykładzie audio zazwyczaj jest to plik a
ścieżka dźwiękowa CD, taka jak w narzędziach Tosha lub cdparanoia).

c-strumień -OD -o mój plik

Zapisz do pliku myfile za pomocą O_DIRECT. Zwykle oznacza to, że bufor systemu plików
cache nie będzie próbował buforować tego pliku. Możesz tego użyć, aby zapobiec kopiowaniu
operacji, które nie pochłaniają pamięci fizycznej. Zauważ, że gdy cstream napotka plik
błąd zapisu, przełączy plik wyjściowy z O_DIRECT na normalny plik i zapisze
wszystkie dalsze bloki bez O_DIRECT, jeśli zapisy bez O_DIRECT powiodą się. W praktyce
zwykle oznacza to, że ostatni blok, jeśli nie jest wielokrotnością bloku systemu plików
size, nadal będą zapisywane w pliku (maksymalna ilość zapisanych danych
bez O_DIRECT to rozmiar bloku minus jeden). W ten sposób cstream zapewnia, że
plik wyjściowy ma długość wejściową, niezależnie od tego, jak dziwna jest długość i nie ma to znaczenia
jakie ograniczenia system operacyjny nakłada na dane wyjściowe O_DIRECT. Ponownie, cstream *nie* będzie padał
wyjście do rozmiaru bloku, otrzymasz ten sam plik i rozmiar pliku, jak w przypadku nieużywania
O_DIRECT, kosztem przejścia na inny niż O_DIRECT, gdy blok jest nieprawidłowy
rozmiar.

c-strumień -i : 3333 | dd obs=8192 | ./cstrumień -omyplik -v7 -OD
Oto, co musisz zrobić, aby buforować wejście TCP, aby ostatni cstream nie zrobił tego
przedwcześnie odchodź od O_DIRECT z powodu krótkich odczytów. Jeśli Twój wkład może to zrobić
krótkie odczyty (np. z TCP) i chcesz mieć pewność, że O_DIRECT pozostanie w mocy,
potrzebujesz bufora pomiędzy strumieniem TCP a strumieniem O_DIRECT. Od cstream
nie obsługuje jeszcze różnych rozmiarów bloków wejściowych i wyjściowych, odpowiedni jest tutaj dd.
Należy pamiętać, że jest to konieczne tylko wtedy, gdy system operacyjny wymaga wielokrotności systemu plików
rozmiar bloku dla O_DIRECT. W chwili pisania tego tekstu ta konstrukcja jest potrzebna
Linux do używania strumieni TCP z O_DIRECT, ale we FreeBSD nie jest to potrzebne.

c-strumień -KOŚĆ -o mój plik
Zapisuje do pliku myfile z O_SYNC. Oznacza to czas powrotu wywołania systemowego
wiadomo, że dane znajdują się na dysku. To nie to samo co O_DIRECT. O_DIRECT
może wykonać własne buforowanie, przy O_SYNC nie ma żadnego buforowania. W czasie
pisząc ten tekst, O_SYNC zarówno w Linuksie, jak i FreeBSD jest bardzo powolny (1/5 do 1/10
normalny zapis), a O_DIRECT jest dość szybki (1/4 do 1/2 normalnego zapisu). Ty
można łączyć O_SYNC i O_DIRECT.

BŁĘDY


Kod wyjścia 0 oznacza sukces.

Kod zakończenia 1 oznacza błąd użycia składni wiersza poleceń.

Kod wyjścia 2 oznacza inne błędy, zwłaszcza błędy systemowe.

Błędy


Powinna istnieć możliwość rozpoczęcia pisania bezpośrednio po zakończeniu pierwszego odczytu, a następnie wypełnienia
bufor z odczytami w tle. W tej chwili pisanie nie rozpocznie się przed czytelnikiem
po raz pierwszy całkowicie wypełnił bufor.

To nie jest błąd: kod do wykonania O_DIRECT jest dość skomplikowany. To wróci do normy
We/Wy w przypadku błędów. Ale zanim to zrobi, wie o wymaganiach dotyczących rozmiaru bloków obu systemów plików
(domyślny rozmiar bloku we/wy będzie równy dowolnemu systemowi plików, w którym znajduje się plik wyjściowy) i page
wymagania dotyczące wyrównania (we/wy będą się odbywać z bufora wyrównanego do strony). Jednakże
kombinacja jednoczesnego odczytu/zapisu (opcje -c) i O_DIRECT nie była dalej testowana
podstawowa weryfikacja, czy poprawnie przechodzi niektóre testy.

Korzystaj z cstream online, korzystając z usług onworks.net


Darmowe serwery i stacje robocze

Pobierz aplikacje Windows i Linux

  • 1
    głęboko czyste
    głęboko czyste
    Skrypt Kotlin, który niszczy wszystkie kompilacje
    pamięci podręczne z projektów Gradle/Android.
    Przydatne, gdy pozwala na to Gradle lub IDE
    w dół. Skrypt został przetestowany na
    macOS, ale...
    Pobierz głębokie czyszczenie
  • 2
    Wtyczka Eclipse Checkstyle
    Wtyczka Eclipse Checkstyle
    Wtyczka Eclipse Checkstyle
    integruje kod Java Checkstyle
    audytora do Eclipse IDE. The
    wtyczka zapewnia informacje zwrotne w czasie rzeczywistym
    użytkownik o naruszeniu...
    Pobierz wtyczkę Eclipse Checkstyle
  • 3
    Gracz AstrOrz
    Gracz AstrOrz
    AstrOrz Player to darmowy odtwarzacz multimedialny
    oprogramowanie, częściowo oparte na WMP i VLC. The
    odtwarzacz jest w minimalistycznym stylu, z
    więcej niż dziesięć kolorów motywu, a także może
    b ...
    Pobierz AstrOrzPlayer
  • 4
    movistartv
    movistartv
    Kodi Movistar+ TV to dodatek do XBMC/
    Kodi que allowe disponer de un
    dekodowanie usług IPTV de
    Movistar integrado en uno de los
    mediacenter ma...
    Pobierz movistartv
  • 5
    Code :: Blocks
    Code :: Blocks
    Code::Blocks to darmowa, otwarta
    międzyplatformowe C, C++ i Fortran IDE
    zbudowany, aby sprostać najbardziej wymagającym potrzebom
    swoich użytkowników. Jest przeznaczony do bardzo
    rozciąga się...
    Pobierz Code::Blocks
  • 6
    Wśród
    Wśród
    Pośród zaawansowanego interfejsu Minecraft
    a śledzenie danych/struktur to narzędzie
    wyświetl przegląd gry Minecraft
    świat, nie tworząc go. To
    mogą ...
    Pobierz Wśród
  • więcej »

Komendy systemu Linux

Ad