cstream - ക്ലൗഡിൽ ഓൺലൈനിൽ

Ubuntu Online, Fedora Online, Windows online emulator അല്ലെങ്കിൽ MAC OS ഓൺലൈൻ എമുലേറ്റർ എന്നിങ്ങനെയുള്ള ഞങ്ങളുടെ ഒന്നിലധികം സൗജന്യ ഓൺലൈൻ വർക്ക്‌സ്റ്റേഷനുകളിലൊന്ന് ഉപയോഗിച്ച് OnWorks സൗജന്യ ഹോസ്റ്റിംഗ് ദാതാവിൽ പ്രവർത്തിപ്പിക്കാൻ കഴിയുന്ന കമാൻഡ് cstream ആണിത്.

പട്ടിക:

NAME


സ്ട്രീം - നേരിട്ടുള്ള ഡാറ്റ സ്ട്രീമുകൾ, ബാൻഡ്‌വിഡ്ത്ത് പരിമിതപ്പെടുത്തൽ, FIFO, ഓഡിയോ, ഡ്യൂപ്ലിക്കേഷൻ കൂടാതെ
വിപുലമായ റിപ്പോർട്ടിംഗ് പിന്തുണ.

സിനോപ്സിസ്


സ്ട്രീം [-b സംഖ്യ] [-B സംഖ്യ] [-i ഫയലിന്റെ പേര്] [-I സ്ട്രിംഗ്] [-l] [-n സംഖ്യ] [-o ഫയലിന്റെ പേര്] [-O സ്ട്രിംഗ്]
[-p ഫയലിന്റെ പേര്] [-t സംഖ്യ] [-T സംഖ്യ] [-v സംഖ്യ] [-V] [ഫയലിന്റെ പേര്]

വിവരണം


Cstream UNIX ടൂൾ പോലെ തന്നെ ഡാറ്റ സ്ട്രീമുകൾ ഫിൽട്ടർ ചെയ്യുന്നു dd(1). ഇതിന് കൂടുതൽ പാരമ്പര്യമുണ്ട്
കമാൻഡ് ലൈൻ വാക്യഘടന, കൃത്യമായ ബാൻഡ്‌വിഡ്ത്ത് പരിമിതപ്പെടുത്തലിനും റിപ്പോർട്ടിംഗിനുള്ള പിന്തുണയും പിന്തുണയും
FIFOകൾ. ഡാറ്റാ പരിധികളും ത്രൂപുട്ട് നിരക്ക് കണക്കുകൂട്ടലും ഫയലുകൾക്കും > 4 GBക്കും പ്രവർത്തിക്കും.

Cstream ഫയലിന്റെ പേരുകളില്ലെങ്കിൽ സ്റ്റാൻഡേർഡ് ഇൻപുട്ടിൽ നിന്ന് വായിക്കുകയും സ്റ്റാൻഡേർഡ് ഔട്ട്പുട്ടിലേക്ക് എഴുതുകയും ചെയ്യുന്നു
നൽകിയത്. വേണമെങ്കിൽ ഇത് ഡാറ്റ 'ജനറേറ്റ്' അല്ലെങ്കിൽ 'സിങ്ക്' ചെയ്യും.

ഓപ്ഷനുകൾ:

-b സംഖ്യ വായിക്കുന്നതിനും എഴുതുന്നതിനും ഉപയോഗിക്കുന്ന ബ്ലോക്ക് വലുപ്പം സജ്ജമാക്കുക സംഖ്യ. സ്ഥിരസ്ഥിതി 8192 ബൈറ്റുകളാണ്.

-B സംഖ്യ വരെ ബഫർ ഇൻപുട്ട് സംഖ്യ എഴുതുന്നതിന് മുമ്പ് ബൈറ്റുകൾ. ഡിഫോൾട്ട് ബ്ലോക്ക് സൈസ് ആണ്. അത്
ഇത് ബ്ലോക്കിന്റെ വലുപ്പത്തിന് താഴെയായി സജ്ജീകരിക്കുന്നതിൽ ഒരു പിശക്. ടേപ്പുകൾ എഴുതുമ്പോൾ ഉപയോഗപ്രദമാണ്
ചെറിയ പലതിന്റെയും വലിയ രചനകൾ ഇഷ്ടപ്പെടുന്ന സമാനമാണ്.

-c സംഖ്യ സമാന്തര പ്രവർത്തനം. ഔട്ട്പുട്ടിനായി ഒരു പ്രത്യേക പ്രക്രിയ ഉപയോഗിക്കുക. ഇത് പ്രത്യേകിച്ചും ഉപയോഗപ്രദമാണ്
-B ഓപ്ഷനുമായി സംയോജിച്ച്.
0 = ഒരു പ്രോസസ്സ് മാത്രം ഉപയോഗിക്കുക (സ്ഥിരസ്ഥിതി)
1 = റീഡ് പ്രോസസ് ബഫർ ചെയ്യും
2 = എഴുത്ത് പ്രക്രിയ ബഫർ ചെയ്യും
3 = രണ്ട് പ്രക്രിയകളും ബഫർ ചെയ്യും.
ഒരു വലിയ ബഫർ വലുപ്പവുമായി സംയോജിച്ച് ഇത് പലപ്പോഴും നിങ്ങളുടെ മെമ്മറി ലോഡ് ചെയ്യും
വളരെയധികം, ഓരോ തവണയും വായനക്കാരൻ അത് ശേഖരിച്ച ബഫർ കൈമാറുന്നു
എഴുത്തുകാരൻ. നിങ്ങൾ -c 3 ഉപയോഗിക്കുകയും 128 മെഗാബൈറ്റ് 256 MB എന്ന ബഫർ വലുപ്പം ഉണ്ടെങ്കിൽ
ഓർമ്മ ഒരിക്കൽ സ്പർശിക്കും.

-i സംഖ്യ

-o സംഖ്യ യഥാക്രമം ഇൻപുട്ടിനോ ഔട്ട്‌പുട്ടിനോ ഉപയോഗിക്കുന്നതിന് ഫയലിന്റെ പേരുകൾ സജ്ജമാക്കുക. ഔട്ട്പുട്ട് ഫയൽ ആണെങ്കിൽ
പേര് "-", ഡാറ്റ ഉപേക്ഷിക്കപ്പെടും. ഇൻപുട്ട് ഫയലിന്റെ പേര് "-" ആണെങ്കിൽ, ഡാറ്റ ചെയ്യും
'ശൂന്യതയിൽ നിന്ന്' സൃഷ്ടിക്കപ്പെടും. ഈ ഓപ്ഷനുകൾ നൽകിയിട്ടില്ലെങ്കിൽ, stdin/stout ആയിരിക്കും
ഉപയോഗിച്ചു. വേണമെങ്കിൽ കൊടുക്കണം -o or -i ഓപ്‌ഷനുകളും stdin/stdout ആവശ്യവും, വ്യക്തമാക്കുക
ശൂന്യമായ സ്ട്രിംഗ്, ഇതുപോലെ:

cstream -i''

TCP പിന്തുണ കംപൈൽ ചെയ്തിട്ടുണ്ടെങ്കിൽ (സ്ഥിരസ്ഥിതി), ഹോസ്റ്റ്നാമം:portnumber ശ്രമിക്കും
നിർദ്ദിഷ്‌ട പോർട്ടിലെ നിർദ്ദിഷ്‌ട ഹോസ്റ്റിലേക്ക് കണക്റ്റുചെയ്യുക, തുടർന്ന്:portnumber തുറക്കും a
ലോക്കൽ മെഷീനിൽ TCP സോക്കറ്റ്, ഒരു കണക്ഷൻ വരുന്നതിനായി കാത്തിരിക്കുക. സുരക്ഷ
ശ്രദ്ധിക്കുക: ഇതിലേക്ക് കണക്‌റ്റ് ചെയ്‌തേക്കാവുന്ന ഹോസ്റ്റുകളെ നിയന്ത്രിക്കുന്നതിനുള്ള ഒരു സംവിധാനവും cstream ഉൾക്കൊള്ളുന്നില്ല
തുറമുഖം. നിങ്ങളുടെ മെഷീന് മറ്റ് നെറ്റ്‌വർക്ക് ഫിൽട്ടറുകൾ ഇല്ലെങ്കിൽ, ആർക്കും കഴിയും
ബന്ധിപ്പിക്കുക.

-I സ്ട്രിംഗ്

-O സ്ട്രിംഗ്
യഥാക്രമം ഇൻപുട്ട്, ഔട്ട്പുട്ട് ഫയലുകളുടെ തരം വ്യക്തമാക്കുക.
സ്ട്രിംഗ് ആണെങ്കിൽ
'f' ഉൾപ്പെടുന്നു, ഒരു fifo സൃഷ്ടിക്കപ്പെടും.
സ്ട്രിംഗ് ആണെങ്കിൽ
'a' ഉൾപ്പെടുന്നു, ഫയൽ ഒരു ഓപ്പൺ സൗണ്ട്-അനുയോജ്യമായ ഓഡിയോ ആണെന്ന് അനുമാനിക്കും
ഉപകരണം സിഡി പോലുള്ള ക്രമീകരണങ്ങളിലേക്ക് മാറും.
സ്ട്രിംഗ് ആണെങ്കിൽ
't' ഉൾപ്പെടുന്നു, സ്ട്രീമിന്റെ ഒരു പകർപ്പ് ഫയൽ ഡിസ്ക്രിപ്റ്റർ 3-ലേക്ക് അയയ്ക്കും.
സ്ട്രിംഗ് ആണെങ്കിൽ
'N' ഉൾപ്പെടുന്നു, പേരിൽ ഒരു ":" ഉണ്ടെങ്കിൽ പോലും ആ ഫയലിനായി TCP ഉപയോഗിക്കില്ല.

-l സ്ഥിതിവിവരക്കണക്കുകളിൽ വരികളുടെ എണ്ണം ഉൾപ്പെടുത്തുക.

-n സംഖ്യ ഡാറ്റയുടെ ആകെ തുക പരിമിതപ്പെടുത്തുക സംഖ്യ. കൂടുതൽ ഇൻപുട്ട് ലഭ്യമാണെങ്കിൽ, അത് ചെയ്യും
തള്ളിക്കളയുക, സ്ട്രീം പരിധി കഴിഞ്ഞാൽ പുറത്തുകടക്കും. കുറവുണ്ടെങ്കിൽ
ഇൻപുട്ട്, പരിധി എത്തില്ല, ഒരു പിശകും സിഗ്നൽ ചെയ്യില്ല.

സംഖ്യ 'k', 'm' അല്ലെങ്കിൽ 'g', അതായത് കിലോബൈറ്റുകൾ, മെഗാബൈറ്റുകൾ അല്ലെങ്കിൽ
ജിഗാബൈറ്റ്സ് (ഇവിടെ കിലോ = 1024). എല്ലാ സംഖ്യാ ഓപ്ഷനുകൾക്കും ഇത് ബാധകമാണ്.

-p ഫയലിന്റെ പേര്
cstream-ന്റെ പ്രോസസ്സ് ഐഡി എഴുതുക ഫയലിന്റെ പേര്. cstream ഒരു പ്രത്യേക എഴുത്തുകാരനെ ഉപയോഗിക്കുകയാണെങ്കിൽ
പ്രോസസ്സ് (ഓപ്ഷൻ -സി), ഇത് പാരന്റ് (റീഡർ) പ്രക്രിയയുടെ പിഡ് ആണ്.

-t സംഖ്യ ഡാറ്റ സ്ട്രീമിന്റെ ത്രൂപുട്ട് പരിമിതപ്പെടുത്തുക സംഖ്യ ബൈറ്റുകൾ/സെക്കൻഡ്. പരിമിതപ്പെടുത്തൽ നടത്തുന്നത്
ഇൻപുട്ട് വശം, ഈ നിരക്കിൽ കൂടുതൽ സ്വീകരിക്കാത്ത cstream നിങ്ങൾക്ക് ആശ്രയിക്കാം. എങ്കിൽ
നിങ്ങൾ നൽകുന്ന നമ്പർ പോസിറ്റീവ് ആണ്, cstream പിശകുകൾ ശേഖരിക്കുകയും നിലനിർത്താൻ ശ്രമിക്കുകയും ചെയ്യുന്നു
മുഴുവൻ സെഷനും നിശ്ചിത മൂല്യത്തിൽ മൊത്തത്തിലുള്ള നിരക്ക്. നിങ്ങൾ നെഗറ്റീവ് നൽകിയാൽ
നമ്പർ, ഇത് ഓരോ റീഡ്/റൈറ്റ് സിസ്റ്റം കോൾ ജോഡിക്കും ഉയർന്ന പരിധിയാണ്. മറ്റൊരു വാക്കിൽ:
നെഗറ്റീവ് സംഖ്യ ഒരിക്കലും ആ പരിധി കവിയുകയില്ല, പോസിറ്റീവ് നമ്പർ കവിയും
ഇത് മുൻകാല ഉപയോഗശൂന്യതയ്ക്ക് ഗുണം ചെയ്യും.

-T സംഖ്യ ഓരോ സംഖ്യ സെക്കന്റിലും ത്രൂപുട്ട് റിപ്പോർട്ട് ചെയ്യുക.

-v സംഖ്യ വെർബോസ് ലെവൽ ഇതിനായി സജ്ജമാക്കുക സംഖ്യ. സ്ഥിരസ്ഥിതിയായി, ഇത് 0 ആയി സജ്ജീകരിച്ചിരിക്കുന്നു, അതായത് സന്ദേശങ്ങളൊന്നുമില്ല
പിശകുകളൊന്നും സംഭവിക്കാത്തിടത്തോളം പ്രദർശിപ്പിക്കും. 1 ന്റെ മൂല്യം അർത്ഥമാക്കുന്നത് ഡാറ്റയുടെ ആകെ തുക എന്നാണ്
കൂടാതെ പ്രോഗ്രാം റൺ അവസാനിക്കുമ്പോൾ ത്രൂപുട്ട് പ്രദർശിപ്പിക്കും. 2 ന്റെ മൂല്യം അർത്ഥമാക്കുന്നത്
ആദ്യത്തെ റീഡ്/റൈറ്റ് ജോഡിയുടെ അവസാനം മുതൽ കൈമാറ്റ നിരക്കും റിപ്പോർട്ട് ചെയ്യപ്പെടും
(പ്രാരംഭ കാലതാമസമുണ്ടാകുമ്പോൾ ഉപയോഗപ്രദമാണ്). 3 ന്റെ മൂല്യം അർത്ഥമാക്കുന്നത് അവിടെയും ഉണ്ടാകും എന്നാണ്
വായിക്കാനും എഴുതാനും പ്രത്യേക അളവുകൾ. ഈ ഓപ്ഷൻ വിഭവ-ഉപഭോഗവും ആണ്
നിലവിൽ നടപ്പിലാക്കിയിട്ടില്ല. 4 ന്റെ മൂല്യം അർത്ഥമാക്കുന്നത് ഓരോ സിംഗിളിനെ കുറിച്ചും ശ്രദ്ധിക്കുന്നു എന്നാണ്
വായിക്കുക/എഴുതുക പ്രദർശിപ്പിക്കും. ഉയർന്ന മൂല്യങ്ങളിൽ താഴ്ന്ന എല്ലാ സന്ദേശ തരങ്ങളും ഉൾപ്പെടുന്നു
മൂല്യങ്ങൾ.

-V പതിപ്പ് നമ്പർ stdout-ലേക്ക് പ്രിന്റ് ചെയ്‌ത് 0 ഉപയോഗിച്ച് പുറത്തുകടക്കുക.

ഫയലിന്റെ പേര് ഓപ്ഷൻ സ്വിച്ച് ഇല്ലാതെ അവസാന ആർഗ്യുമെന്റായി ഒരൊറ്റ ഫയൽനാമം ഉപയോഗിക്കും
-i ഉപയോഗിച്ചിട്ടില്ലെങ്കിൽ ഇൻപുട്ട് ഫയൽ.

SIGUSR1

SIGINFO SIGUSR1 അയയ്‌ക്കുന്നു (അല്ലെങ്കിൽ SIGINFO, നിങ്ങളുടെ കീബോർഡിലെ കൺട്രോൾ-T-ലേക്ക് മാപ്പ് ചെയ്‌തിരിക്കുന്നു)
cstream അത് stderr-ലേക്ക് ത്രൂപുട്ട് നിരക്കുകൾ പ്രദർശിപ്പിക്കുന്നതിന് കാരണമാകുന്നു. സ്ട്രീം ചെയ്യും
ഒന്നും സംഭവിക്കാത്തത് പോലെ തുടരുക.

SIGUSR2 അഭ്യർത്ഥിച്ചാൽ, പുറത്തുകടന്ന് ത്രൂപുട്ട് നിരക്കുകൾ റിപ്പോർട്ട് ചെയ്യുക.

ഫോളോ അപ്പ് ഞാൻ പലപ്പോഴും അബദ്ധത്തിൽ SIGHUP അയയ്ക്കുന്നതായി ഞാൻ കണ്ടെത്തി. എന്നാൽ അവഗണിക്കുകയോ ദുരുപയോഗം ചെയ്യുകയോ ചെയ്യുന്നു
SIGHUP എനിക്ക് ഒരു ഓപ്ഷനല്ല. അങ്ങനെ, എപ്പോൾ സ്ട്രീം SIGHUP ലഭിച്ചു, അത് 5 കാത്തിരിക്കും
സാധ്യമായ ഒരു തെറ്റ് തിരുത്താൻ ഉപയോക്താക്കൾക്ക് അവസരം നൽകുന്നതിന് മറ്റൊരു SIGHUP-നായി സെക്കൻഡുകൾ.
അധിക SIGHUP ഒന്നും ലഭിച്ചില്ലെങ്കിൽ, സ്ട്രീം SIGHUP ഉപയോഗിച്ച് സ്വയം കൊല്ലുന്നു.

ഉദാഹരണങ്ങൾ


സ്ട്രീം -o tmpfile -v 1 -n 384m -i -
ഫയലിലേക്ക് 384 മെഗാബൈറ്റ് വ്യക്തമാക്കാത്ത ഡാറ്റ എഴുതുന്നു tmpfile കൂടാതെ വാചാലമായി പ്രദർശിപ്പിക്കുക
ത്രൂപുട്ട് നിരക്ക്. ഒരു നല്ല മാനദണ്ഡമാക്കുന്നു, വേഗത / dev / null മുതൽ വളരെയധികം വ്യത്യാസപ്പെടുന്നു
സിസ്റ്റം മുതൽ സിസ്റ്റം വരെ.

സ്ട്രീം -i tmpfile -v 1 -n 384m -o -
അതേ ഫയൽ വീണ്ടും വായിച്ച് ഡാറ്റ നിരസിക്കുക.

സ്ട്രീം -b 2000 -t 10000 / var / ലോഗ് / സന്ദേശങ്ങൾ
കൂടുതലോ കുറവോ കാണാവുന്ന വേഗതയിൽ ഫയൽ പ്രദർശിപ്പിക്കും.

ഡംബ് 0sf 400000 - / | സ്ട്രീം -v 1 -b 32768 -o /dev/rst0 -p പിഡ്ഫിൽ

കൊല്ലുക -USR1 `പൂച്ച pidfile`
നിന്ന് ഔട്ട്പുട്ട് എഴുതുക ഡംബ്(1) ടേപ്പ് ചെയ്യാൻ. ഓരോ തവണയും സിഗ്നൽ അയയ്ക്കുമ്പോൾ, ത്രൂപുട്ട്
ഇതുവരെയുള്ള ഡാറ്റ നിരക്കും പ്രദർശിപ്പിക്കും.

സ്ട്രീം -t 176400 -i /dev/dsp0 -I f -o -
ഓഡിയോ ആപ്ലിക്കേഷനുകൾ പരീക്ഷിക്കാൻ ഉപയോഗിച്ചേക്കാവുന്ന ഒരു സൗണ്ട്കാർഡ് എമുലേറ്റർ നിർമ്മിക്കുന്നു
ഒരു യഥാർത്ഥ സൗണ്ട്കാർഡ് ചെയ്യുന്നതുപോലെ ഡാറ്റാ നിരക്ക് പരിമിതപ്പെടുത്തുന്നതിന് എന്തെങ്കിലും എഴുതേണ്ടതുണ്ട്. ഈ
ആപ്ലിക്കേഷൻ ഉപയോഗിച്ച് ഡാറ്റ എഴുതാൻ ശ്രമിക്കുമ്പോൾ അത് പ്രവർത്തിക്കില്ല mmap(2) ഉം
ഉപയോഗിച്ച് സൗണ്ട്കാർഡ് പാരാമീറ്ററുകൾ സജ്ജമാക്കാൻ ശ്രമിക്കുമ്പോൾ ആപ്ലിക്കേഷൻ പിശകുകൾ അവഗണിക്കേണ്ടതുണ്ട്
ioctls(2).

സ്ട്രീം -t 176400 -i /dev/dsp0 -I f -o /dev/dsp1 -O f
സമാനമായ സൗണ്ട്കാർഡ് എമുലേറ്റർ, നിങ്ങളുടെ ഡാറ്റ പിടിച്ചെടുക്കാൻ ഇത് നിങ്ങളെ അനുവദിക്കുന്നു എന്നതൊഴിച്ചാൽ
കൃത്യമായ സമയം ഉള്ളപ്പോൾ തന്നെ മറ്റ് fifo-ൽ നിന്ന് അപേക്ഷകൾ ഇതിലേക്ക് അയയ്ക്കുന്നു.

സ്ട്രീം -ഓ -o /dev/dsp0 myhost.mydomain.com:17324
ഹോസ്റ്റ് myhost.mydomain.com-ൽ പോർട്ട് 3333 കണക്ട് ചെയ്യുന്നു, അത് അവിടെ കണ്ടെത്തുന്ന ഏത് ഡാറ്റയും
സിഡി നിലവാരമുള്ള സ്റ്റെറോ പ്ലേയ്‌ക്കായി ഉചിതമായ ക്രമീകരണങ്ങളോടെ സൗണ്ട്കാർഡിലേക്ക് അയയ്‌ക്കും.

സ്ട്രീം -i myaudiofile.raw -o : 17324
ഇത് പോർട്ട് 17324-ൽ ഒരു TCP സെർവർ തുറക്കുകയും ആരെങ്കിലും കണക്‌റ്റുചെയ്യുന്നത് വരെ കാത്തിരിക്കുകയും ചെയ്യും
ഉദാഹരണത്തിന്, മുമ്പത്തെ ഉദാഹരണത്തിൽ നിന്നുള്ള കമാൻഡ് ലൈൻ). അപ്പോൾ അത് ഉള്ളടക്കം അയയ്ക്കും
myaudiofile.raw ഡൗൺ TCP സ്ട്രീം (മുമ്പത്തെ ഓഡിയോ ഉദാഹരണത്തിന്, സാധാരണയായി a
തോഷ അല്ലെങ്കിൽ cdparanoia യൂട്ടിലിറ്റികളിൽ നിന്ന് നിങ്ങൾക്ക് ലഭിക്കുന്നത് പോലെയുള്ള CD ഓഡിയോ ട്രാക്ക്).

സ്ട്രീം -ഒ.ഡി -o myfile

O_DIRECT ഉപയോഗിച്ച് myfile ഫയൽ ചെയ്യാൻ എഴുതുക. അതായത് സാധാരണയായി ഫയൽസിസ്റ്റം ബഫർ എന്നാണ് അർത്ഥമാക്കുന്നത്
കാഷെ ഈ ഫയൽ കാഷെ ചെയ്യാൻ ശ്രമിക്കില്ല. പകർത്തുന്നത് തടയാൻ നിങ്ങൾക്ക് അത് ഉപയോഗിക്കാം
ശാരീരിക മെമ്മറി നശിപ്പിക്കുന്നതിൽ നിന്നുള്ള പ്രവർത്തനങ്ങൾ. cstream കണ്ടുമുട്ടുമ്പോൾ a
എഴുത്ത് പിശക് അത് ഔട്ട്‌പുട്ട് ഫയലിനെ O_DIRECT ൽ നിന്ന് ഒരു സാധാരണ ഫയലിലേക്ക് മാറ്റി എഴുതും
O_DIRECT ഇല്ലാതെ എഴുതിയാൽ O_DIRECT ഇല്ലാത്ത എല്ലാ ബ്ലോക്കുകളും വിജയിക്കും. പ്രായോഗികമായി
അതായത് ഫയൽസിസ്റ്റം ബ്ലോക്കിന്റെ ഗുണിതമല്ലെങ്കിൽ, നിങ്ങളുടെ അവസാന ബ്ലോക്ക് എന്നാണ് അർത്ഥമാക്കുന്നത്
വലിപ്പം, ഫയലിൽ ഇപ്പോഴും എഴുതപ്പെടും (എഴുതപ്പെട്ട ഡാറ്റയുടെ പരമാവധി തുക
O_DIRECT ഇല്ലാതെ നിങ്ങളുടെ ബ്ലോക്കിന്റെ മൈനസ് ഒന്ന്). അതുവഴി cstream ഉറപ്പാക്കുന്നു
ഔട്ട്‌പുട്ട് ഫയലിന് ഇൻപുട്ടിന്റെ ദൈർഘ്യമുണ്ട്, എന്നിരുന്നാലും ദൈർഘ്യം വിചിത്രമായിരുന്നു, സാരമില്ല
O_DIRECT ഔട്ട്‌പുട്ടിൽ നിങ്ങളുടെ OS സ്ഥാപിക്കുന്ന നിയന്ത്രണങ്ങൾ എന്തൊക്കെയാണ്. വീണ്ടും, cstream പാഡ് ചെയ്യില്ല
ബ്ലോക്ക് വലുപ്പത്തിലേക്കുള്ള ഔട്ട്‌പുട്ട്, നിങ്ങൾക്ക് ഉപയോഗിക്കാത്ത അതേ ഫയലും ഫയൽ വലുപ്പവും ലഭിക്കും
O_DIRECT, ഒരു ബ്ലോക്ക് ശരിയല്ലാത്തപ്പോഴെല്ലാം O_DIRECT അല്ലാത്തതിലേക്ക് മാറുന്നതിനുള്ള ചെലവിൽ
വലുപ്പം.

സ്ട്രീം -i : 3333 | dd obs=8192 | ./cstream -ഓമിഫയൽ -v7 -ഒ.ഡി
TCP ഇൻപുട്ട് ബഫർ ചെയ്യാൻ നിങ്ങൾ ചെയ്യേണ്ടത് ഇതാണ്, അതിനാൽ അവസാനത്തെ cstream ചെയ്യില്ല
ചെറിയ വായനകൾ കാരണം O_DIRECT-ൽ നിന്ന് അകാലത്തിൽ മാറുക. നിങ്ങളുടെ ഇൻപുട്ട് ചെയ്യാൻ കഴിയുമെങ്കിൽ
ചെറിയ വായനകൾ (ഉദാ. ടിസിപിയിൽ നിന്ന്), കൂടാതെ O_DIRECT പ്രാബല്യത്തിൽ തുടരുന്നുവെന്ന് ഉറപ്പാക്കാൻ നിങ്ങൾ ആഗ്രഹിക്കുന്നു,
നിങ്ങൾക്ക് TCP സ്ട്രീമിനും O_DIRECT സ്ട്രീമിനും ഇടയിൽ ഒരു ബഫർ ആവശ്യമാണ്. cstream മുതൽ
വ്യത്യസ്ത ഇൻപുട്ട്, ഔട്ട്പുട്ട് ബ്ലോക്ക് വലുപ്പങ്ങൾ ഇതുവരെ പിന്തുണയ്ക്കുന്നില്ല, dd ഇവിടെ അനുയോജ്യമാണ്.
OS-ന് ഫയൽസിസ്റ്റത്തിന്റെ ഗുണിതങ്ങൾ ആവശ്യമാണെങ്കിൽ മാത്രമേ ഇത് ആവശ്യമുള്ളൂ എന്നത് ശ്രദ്ധിക്കുക
O_DIRECT എന്നതിനായുള്ള ബ്ലോക്ക് വലുപ്പം. ഇത് എഴുതുമ്പോൾ ഈ നിർമ്മാണം ആവശ്യമാണ്
O_DIRECT ഉപയോഗിച്ച് TCP സ്ട്രീമുകൾ ഉപയോഗിക്കുന്നതിനുള്ള Linux, എന്നാൽ FreeBSD-യിൽ ഇത് ആവശ്യമില്ല.

സ്ട്രീം -ഒ.എസ് -o myfile
O_SYNC ഉപയോഗിച്ച് myfile ഫയൽ ചെയ്യാൻ എഴുതുന്നു. സിസ്റ്റം കോൾ മടങ്ങിയെത്തുമ്പോഴേക്കും ഇതിനർത്ഥം
ഡാറ്റ ഡിസ്കിൽ ഉണ്ടെന്ന് അറിയാം. ഇത് O_DIRECT പോലെയല്ല. O_DIRECT
സ്വന്തമായി ബഫറിംഗ് ചെയ്യാൻ കഴിയും, O_SYNC ഉപയോഗിച്ച് ബഫറിംഗ് ഒന്നുമില്ല. എന്ന സമയത്ത്
ഈ എഴുത്ത്, Linux, FreeBSD എന്നിവയിലെ O_SYNC വളരെ മന്ദഗതിയിലാണ് (1/5 മുതൽ 1/10 വരെ
സാധാരണ എഴുത്ത്) കൂടാതെ O_DIRECT വളരെ വേഗതയുള്ളതാണ് (സാധാരണ എഴുത്തിന്റെ 1/4 മുതൽ 1/2 വരെ). നിങ്ങൾ
O_SYNC, O_DIRECT എന്നിവ സംയോജിപ്പിക്കാൻ കഴിയും.

പിശകുകൾ


എക്സിറ്റ് കോഡ് 0 എന്നാൽ വിജയം എന്നാണ് അർത്ഥമാക്കുന്നത്.

എക്സിറ്റ് കോഡ് 1 എന്നാൽ കമാൻഡ് ലൈൻ വാക്യഘടന ഉപയോഗ പിശക് എന്നാണ് അർത്ഥമാക്കുന്നത്.

എക്സിറ്റ് കോഡ് 2 എന്നാൽ മറ്റ് പിശകുകൾ, പ്രത്യേകിച്ച് സിസ്റ്റം പിശകുകൾ.

ബഗുകൾ


ആദ്യ വായന അവസാനിച്ചതിന് ശേഷം നേരിട്ട് എഴുതാൻ തുടങ്ങാനും തുടർന്ന് പൂരിപ്പിക്കാനും ഒരു ഓപ്ഷൻ ഉണ്ടായിരിക്കണം
പശ്ചാത്തലത്തിൽ വായനകളുള്ള ബഫർ. ഇപ്പോൾ എഴുത്ത് വായനക്കാരന്റെ മുമ്പിൽ ആരംഭിക്കില്ല
ആദ്യമായി ബഫർ പൂർണ്ണമായും നിറച്ചു.

ഒരു ബഗ് അല്ല: O_DIRECT ചെയ്യാനുള്ള കോഡ് ന്യായമായും സങ്കീർണ്ണമാണ്. അത് സാധാരണ നിലയിലേക്ക് മടങ്ങും
പിശകുകളിൽ I/O. എന്നാൽ അത് ചെയ്യുന്നതിന് മുമ്പ് രണ്ട് ഫയൽസിസ്റ്റം ബ്ലോക്ക്സൈസ് ആവശ്യകതകളെക്കുറിച്ചും അതിന് അറിയാം
(ഔട്ട്‌പുട്ട് ഫയലിന്റെ ഏത് ഫയൽസിസ്റ്റം ഉള്ളതാണോ അതിലേക്ക് ഡിഫോൾട്ട് I/O ബ്ലോക്ക് സൈസ് ചെയ്യും) കൂടാതെ പേജും
വിന്യാസ ആവശ്യകതകൾ (I/O ഒരു പേജ് വിന്യസിച്ച ബഫറിൽ നിന്ന് സംഭവിക്കും). എന്നിരുന്നാലും, ദി
കൺകറന്റ് റീഡ്/റൈറ്റുകളുടെ (-c ഓപ്ഷനുകൾ), O_DIRECT എന്നിവയുടെ സംയോജനം അപ്പുറം പരീക്ഷിച്ചിട്ടില്ല
ചില പരിശോധനകൾ ശരിയാണെന്ന് അടിസ്ഥാന പരിശോധന.

onworks.net സേവനങ്ങൾ ഉപയോഗിച്ച് cstream ഓൺലൈനായി ഉപയോഗിക്കുക



ഏറ്റവും പുതിയ ലിനക്സ്, വിൻഡോസ് ഓൺലൈൻ പ്രോഗ്രാമുകൾ