| SZ(1) | General Commands Manual | SZ(1) |
نام (NAME)
sx, sb, sz - ارسال فایل با پروتکلهای XMODEM، YMODEM و ZMODEM
خلاصه دستور (SYNOPSIS)
sz [-+8abdefkLlNnopqTtuvyY] file ...
sb [-adfkqtuv] file ...
sx [-akqtuv] file
sz [-oqtv] -c COMMAND
sz [-oqtv] -i COMMAND
sz -TT
توضیحات (DESCRIPTION)
دستور sz از پروتکلهای تصحیح خطای ZMODEM، YMODEM یا XMODEM برای ارسال یک یا چند فایل از طریق یک درگاه سریال ورودی (dial-in) به برنامههای گوناگونی که تحت سیستمعاملهای PC-DOS، CP/M، Unix، VMS و سایر سیستمعاملها اجرا میشوند، استفاده میکند.
اگرچه rz بهاندازه کافی هوشمند است که از درون cu(1) فراخوانی شود، اما نسخههای بسیار اندکی از cu(1) آنقدر هوشمند هستند که به sz اجازه دهند بهدرستی کار کند. نسخههای متفاوتی از Professional-YAM برای سیستمعاملهای Unix جهت استفاده در چنین برنامههای شمارهگیری خروجی (dial-out) در دسترس هستند.
دستور sz یک یا چند فایل را با پروتکل ZMODEM ارسال میکند.
پروتکل ZMODEM در مقایسه با XMODEM انتقال فایل را بسیار سادهتر میکند. این پروتکل علاوه بر ارائه یک رابط کاربری آسان، روشی کارآمد، دقیق و پایدار را برای انتقال فایل در اختیار کاربران رایانههای شخصی و سایر کاربران قرار میدهد.
پروتکل ZMODEM یکپارچگی داده سرتاسری (END-TO-END) کاملی را میان برنامههای کاربردی فراهم میسازد. سازوکار CRC ۳۲ بیتی در ZMODEM خطاهایی را که حتی به پیشرفتهترین شبکهها نفوذ میکنند نیز شناسایی میکند.
قابلیتهای پیشرفته مدیریت فایل شامل AutoDownload (دانلود خودکار فایل بدون نیاز به دخالت کاربر)، نمایش اندازه تکتک فایلها و اندازه کل به همراه تخمین زمان انتقال، بازیابی پس از خرابی (Crash Recovery)، انتقال گزینشی فایلها، و حفظ تاریخ و اندازه دقیق فایل است.
میتوان
با مشخص
کردن ورودی
استاندارد
از طریق «-»،
خروجی یک
برنامه
دیگر را
برای ارسال
به sz پایپ (pipe)
کرد:
ls -l | sz -
خروجی
برنامه با
نام فایل sPID.sz
ارسال
میشود که
در آن PID
شناسه
فرایند (process ID)
برنامه sz
است. اگر
متغیر
محیطی ONAME
تنظیم شده
باشد، به
جای آن
استفاده
خواهد شد. در
این صورت،
دستور
یونیکس:
ls -l | ONAME=con sz -ay -
یک «فایل»
را به
نمایشگر
کنسول PC-DOS
ارسال
خواهد کرد.
گزینه -y به
گیرنده
دستور
میدهد
فایل را
بدون قید و
شرط برای
نوشتن باز
کند. گزینه -a
باعث
میشود
گیرنده،
کاراکترهای
خط جدید Unix (newline)
را به
کاراکترهای
بازگشت به
ابتدای سطر
(carriage return) و سطر بعد
(linefeed) مخصوص PC-DOS
تبدیل کند.
دستور sb یک یا چند فایل را بهصورت دستهای (batch) با پروتکل YMODEM یا ZMODEM ارسال میکند. مقداردهی اولیه ZMODEM ارسال نمیشود. هنگامی که گیرنده درخواست کند، sb از YMODEM-g با حالت tty از نوع "cbreak"، کنترل جریان XON/XOFF، و نویسه وقفه تنظیمشده روی CAN (^X) پشتیبانی میکند. پروتکل YMODEM-g (گزینه g در Professional-YAM) با عدم ارسال تأییدیه (acknowledging) برای تکتک بخشهای ارسالی، کارایی و نرخ انتقال (throughput) را در کانالهای بدون خطا (اتصال مستقیم، X.PC و غیره) افزایش میدهد.
در سیستمهای Unix اطلاعات بیشتری درباره فایل ارسال میشود. اگر برنامه گیرنده از این اطلاعات استفاده کند، طول فایل ارسالشده، تعداد دقیق بایتهای نوشتهشده در مجموعهداده (dataset) خروجی را کنترل کرده و زمان تغییر (modify time) و حالت فایل (file mode) نیز بر همان اساس تنظیم میشوند.
دستور sx یک file تکی را با پروتکل XMODEM یا XMODEM-1k (که گاهی به اشتباه "ymodem" نامیده میشود) ارسال میکند. کاربر باید نام فایل را هم برای برنامه فرستنده و هم گیرنده مشخص کند.
اگر sz در حالی فراخوانی شود که SHELL$ مقداردهی شده باشد و تنها در صورتی که مقدار آن متغیر شامل رشتههای rsh ، rbash یا rksh (پوسته محدود یا restricted shell) باشد، sz در حالت محدود عمل میکند. حالت محدود، مسیر فایلها را به دایرکتوری جاری و PUBDIR (معمولاً /usr/spool/uucppublic) و/یا زیردایرکتوریهای آنها محدود میسازد.
شکل چهارم یک COMMAND تکی را برای اجرا به یک گیرنده ZMODEM ارسال میکند. دستور sz با مقدار بازگشتی COMMAND خارج میشود. اگر COMMAND شامل فاصله یا نویسههای ویژه پوسته باشد، باید درون علامت نقلقول قرار گیرد.
شکل پنجم یک COMMAND تکی را برای اجرا به یک گیرنده ZMODEM ارسال میکند. دستور sz بهمحض اینکه گیرنده دستور را بهدرستی دریافت کرد، پیش از اجرای آن، خارج میشود.
شکل ششم (sz -TT) تلاش میکند تمام ۲۵۶ ترکیب کد نویسه را در ترمینال چاپ کند. اگر در ارسال فایلها با مشکل مواجه هستید، این دستور به شما امکان میدهد ببینید کدام کدهای نویسه توسط سیستمعامل خورده (حذف یا نادیده گرفته) میشوند.
اگر sz در وضعیتی فراخوانی شود که خروجی استاندارد (stdout) و خطای استاندارد (stderr) به مجموعهدادههای متفاوتی متصل باشند، مقدار Verbose روی ۲ تنظیم میشود که باعث ارسال گزارش پیشرفت فریم به فریم به stderr میگردد. این رفتار را میتوان با گزینه q غیرفعال کرد.
معانی گزینههای موجود عبارتند از:.PP
- -+, --append
- به گیرنده دستور میدهد تا دادههای ارسالی را به انتهای یک فایل موجود اضافه کند (فقط ZMODEM).
- -2, --twostop
- استفاده از دو بیت توقف (در صورت امکان). از این گزینه استفاده نکنید مگر اینکه بدانید چه کار میکنید.
- -8, --try-8k
- تلاش برای افزایش اندازهٔ بلوک تا ۸ کیلوبایت. این گزینه با zmodem استاندارد ناسازگار است، اما افزونهای رایج در دنیای bbs بهشمار میرود (فقط ZMODEM).
- --start-8k
- شروع با اندازهٔ بلوک ۸ کیلوبایت. مانند --try-8k.
- -a, --ascii
- تبدیل نویسههای NL در فایل ارسالی به CR/LF. این کار برای XMODEM و YMODEM توسط فرستنده، و برای ZMODEM توسط گیرنده انجام میشود.
- -b, --binary
- (در ZMODEM) لغو باینری: انتقال فایل بدون هیچگونه تبدیل.
- -B NUMBER, --bufsize NUMBER
- استفاده از
یک بافر
خواندن به
اندازهٔ NUMBER
بایت. مقدار
پیشفرض
۱۶۳۸۴ است
که باید
برای بیشتر
شرایط کافی
باشد. اگر
سیستمی
کُند یا
رابط دیسک
نامناسبی
دارید یا از
دیگر
مشکلات
سختافزاری
رنج
میبرید،
ممکن است
بخواهید
اندازهٔ
بافر را
افزایش
دهید. -1 یا auto
از بافری به
اندازهٔ
کافی بزرگ
برای
نگهداری کل
فایل در
بافر
استفاده
میکند. با
این گزینه
محتاط
باشید - اگر
سیستم شروع
به swap کند،
اوضاع
معمولاً
بدتر
میشود، نه
بهتر.
استفاده از این گزینه نگاشت حافظهٔ (memory mapping) فایل ورودی را غیرفعال میکند. این کار مصرف حافظه و CPU را افزایش میدهد.
- -c COMMAND, --command COMMAND
- ارسال COMMAND به گیرنده برای اجرا، و بازگشت با وضعیت خروج COMMAND.
- -C N, --command-tries N
- تلاش مجدد برای ارسال دستور تا N بار (پیشفرض: ۱۱).
- -d, --dot-to-slash
- تغییر تمام
موارد «.»
به «/» در
مسیر فایل
ارسالی.
بنابراین،
C.omenB0000 (که برای MSDOS
یا CP/M
غیرقابلقبول
است)
بهصورت C/omenB0000
ارسال
میشود. اگر
نام فایل
حاصل بیش از
۸ نویسه در
ریشهٔ نام
داشته
باشد، یک
«.» درج
میشود تا
در مجموع
امکان ۱۱
نویسه
فراهم گردد.
این گزینه همچنین گزینهٔ --full-path را فعال میکند.
- --delay-startup N
- انتظار به مدت N ثانیه پیش از انجام هر کاری.
- -e, --escape
- گریزدهی (escape) تمام نویسههای کنترلی؛ بهطور معمول نویسههای XON، XOFF، DLE، CR-@-CR و Ctrl-X گریزدهی میشوند.
- -E, --rename
- مجبور کردن فرستنده به تغییر نام فایل جدید، اگر فایلی با همان نام از قبل وجود داشته باشد.
- -f, --full-path
- ارسال مسیر
کامل.
بهطور
معمول
پیشوندهای
دایرکتوری
از نام فایل
ارسالی حذف
میشوند.
این گزینه همچنین با گزینهٔ --dot-to-slash فعال میشود.
- -h, --help
- ارائهٔ راهنما.
- -i COMMAND, --immediate-command COMMAND
- ارسال COMMAND به گیرنده برای اجرا، و بازگشتِ فوری بلافاصله پس از دریافت موفقیتآمیز دستور توسط برنامهٔ گیرنده.
- -k, --1k
- (در XMODEM/YMODEM) ارسال فایلها با استفاده از بلوکهای ۱۰۲۴ بایتی بهجای بلوکهای پیشفرض ۱۲۸ بایتی. بستههای ۱۰۲۴ بایتی انتقال فایل را در نرخهای بیت بالا سرعت میبخشند. (ZMODEM دادهها را برای دستیابی به بیشترین پهنای باند ممکن بهصورت جریانی ارسال میکند.)
- -L N, --packetlen N
- استفاده از زیربستههای ZMODEM با طول N. یک N بزرگتر (32 <= N <= 1024) توان عملیاتی اندکی بالاتر ارائه میدهد، و یک N کوچکتر بازیابی خطا را سریعتر میکند. مقدار پیشفرض، ۱۲۸ برای کمتر از ۳۰۰ باود، ۲۵۶ برای بیشتر از ۳۰۰ باود، یا ۱۰۲۴ برای بیشتر از ۲۴۰۰ باود است.
- -m N, --min-bps N
- توقف ارسال در صورتی که نرخ BPS (بایت بر ثانیه) برای مدتزمانی معین به زیر N افت کند (گزینهٔ --min-bps-time را ببینید).
- -M N, --min-bps-time
- همراه با --min-bps استفاده میشود. مقدار پیشفرض ۱۲۰ (ثانیه) است.
- -l N, --framelen N
- انتظار برای تأیید دادههای درست توسط گیرنده به ازای هر N (32 <= N <= 1024) نویسه. از این گزینه میتوان برای جلوگیری از سرریز شبکه در هنگام نبود کنترل جریان XOFF استفاده کرد.
- -n, --newer
- (در ZMODEM) ارسال هر فایل در صورتی که فایل مقصد وجود نداشته باشد. بازنویسی روی فایل مقصد در صورتی که فایل مبدأ تازهتر از فایل مقصد باشد.
- -N, --newer-or-longer
- (در ZMODEM) ارسال هر فایل در صورتی که فایل مقصد وجود نداشته باشد. بازنویسی روی فایل مقصد در صورتی که فایل مبدأ تازهتر یا طولانیتر از فایل مقصد باشد.
- -o, --16-bit-crc
- (در ZMODEM) غیرفعال کردن انتخاب خودکار CRC با ۳۲ بیت.
- -O, --disable-timeouts
- غیرفعال
کردن
مدیریت
مهلت زمانی
(timeout) خواندن.
این کار در
صورتی که
طرف مقابل
چیزی ارسال
نکند، باعث
معلق ماندن
(hang) برنامهٔ lsz
میشود،
اما کارایی
را (نه
چندان)
افزایش
داده و بار
سیستم را
کاهش
میدهد
(تعداد
فراخوانیهای
سیستم را
حدود ۵۰
درصد کاهش
میدهد).
از این گزینه با احتیاط استفاده کنید.
- -p, --protect
- (در ZMODEM) محافظت از فایلهای مقصد موجود از طریق صرفنظر کردن از انتقال، در صورت وجود داشتن فایل مقصد.
- -q, --quiet
- حالت بیصدا، پرگویی پیامها را متوقف میکند.
- -R, --restricted
- حالت محدود شده: مسیرها را به دایرکتوری جاری و PUBDIR (معمولاً /usr/spool/uucppublic) و/یا زیردایرکتوریهای آنها محدود میکند.
- -r, --resume
- (در ZMODEM) ازسرگیری انتقال متوقفشدهٔ فایل. اگر فایل مبدأ طولانیتر از فایل مقصد باشد، انتقال از آفستی در فایل مبدأ آغاز میشود که برابر با طول فایل مقصد است.
- -s HH:MM, --stop-at HH:MM
- توقف ارسال در ساعت HH و دقیقهٔ MM. حالت دیگر، استفاده از +N بهجای HH:MM است که ارسال را در N ثانیه متوقف میکند.
- -S, --timesync
- فعالسازی
پشتیبانی
از پروتکل
timesync. برای
اطلاعات
بیشتر timesync.doc را
ببینید.
این گزینه با zmodem استاندارد ناسازگار است. با احتیاط از آن استفاده کنید.
- --syslog[=off]
- روشن یا خاموش کردن ثبت وقایع سیستم (syslog). پیشفرض در زمان پیکربندی تعیین شده است. این گزینه در صورتی که پشتیبانی از syslog در برنامه کامپایل نشده باشد، نادیده گرفته میشود.
- -t TIM, --timeout TIM
- تغییر مهلت زمانی به TIM دهم ثانیه..TP -T, --turbo نویسههای خاصی را گریزدهی (escape) نمیکند (^P، ^P|0x80، توالی گریز telnet [CR + @]). این کار کارایی را حدود ۱ درصد بهبود میبخشد و در شرایط عادی نباید مشکلی ایجاد کند (اما مراقب باشید - اگر از طریق یک terminal server متصل هستید، ممکن است ^P مفید باشد).
- --tcp
- تلاش برای
برقراری یک
اتصال TCP/IP.
دستور lsz از zmodem
دریافتکننده
درخواست
خواهد کرد
تا یک اتصال
TCP/IP باز کند.
تمام
دستتکانیها
(اینکه از
چه نشانی /
درگاهی
استفاده
شود) توسط
برنامههای
zmodem انجام
خواهد شد.
به طور معمول نیازی به استفاده از این گزینه نخواهید داشت، زیرا lrzsz تنها برنامهٔ zmodem است که این فرایند را درک میکند (یک افزونهٔ اختصاصی). در صورتی که دو برنامه از طریق یک اتصال شبکهای کُند یا نامناسب (غیر 8bit clean) متصل باشند (از طریق stdin/out)، ممکن است بخواهید از این گزینه استفاده کنید.
استفاده از این گزینه خطرات امنیتی دارد، زیرا ممکن است شخص دیگری در این بین به درگاه متصل شود. برای جزئیات SECURITY را ببینید.
- --tcp-client ADDRESS:PORT
- عمل کردن به
عنوان
کلاینت tcp/ip:
اتصال به
درگاه
مشخصشده.
برای اطلاعات بیشتر --tcp-server را ببینید.
- --tcp-server
- عمل کردن به
عنوان سرور:
باز کردن یک
سوکت، چاپ
کارهایی که
باید انجام
شود،
انتظار
برای اتصال.
به طور معمول نیازی به استفاده از این گزینه نخواهید داشت زیرا lrzsz تنها برنامهٔ zmodem است که این فرایند را درک میکند (یک افزونهٔ اختصاصی). ممکن است بخواهید در صورتی از این گزینه استفاده کنید که مجبور به استفاده از zmodem باشید (به هر دلیلی)، و نتوانید از گزینهٔ --tcp برنامهٔ lsz استفاده کنید (احتمالاً به این دلیل که telnet شما اجازه اجرای یک برنامه محلی با اتصال stdin/stdout به طرف دوردست را نمیدهد).
اگر از این گزینه استفاده میکنید، باید lsz را با گزینهٔ --tcp-client ADDRESS:PORT اجرا کنید. lrz در هنگام راهاندازی نشانی و درگاه را چاپ خواهد کرد.
استفاده از این گزینه خطرات امنیتی دارد، زیرا ممکن است شخص دیگری در این بین به درگاه متصل شود. برای جزئیات SECURITY را ببینید.
- -u
- حذف فایل (unlink) پس از انتقال موفقیتآمیز.
- -U, --unrestrict
- غیرفعال کردن حالت محدود (در صورت اجرا تحت یک پوستهٔ محدود، امکانپذیر نیست).
- -w N, --windowsize N
- محدود کردن اندازهٔ پنجرهٔ انتقال به N بایت (ZMODEM).
- -v, --verbose
- خروجی پرگو (verbose) به stderr. تعداد بیشتر v خروجی بیشتری تولید میکند.
- -X, --xmodem
- استفاده از پروتکل XMODEM.
- -y, --overwrite
- دستور دادن به برنامهٔ دریافتکننده ZMODEM برای بازنویسی هر فایل موجود با نام یکسان.
- -Y, --overwrite-or-skip
- دستور دادن به برنامهٔ دریافتکننده ZMODEM برای بازنویسی هر فایل موجود با نام یکسان، و صرفنظر کردن از فایلهای مبدئی که فایلی با همان نام مسیر در سیستم مقصد دارند.
- --ymodem
- استفاده از پروتکل ZMODEM.
- -Z, --zmodem
- استفاده از
پروتکل ZMODEM.
حالت محدود
(Restricted mode)، مسیرها
را به
دایرکتوری
فعلی و PUBDIR
(معمولاً
/var/spool/uucppublic) و/یا
زیرپوشههای
آنها
محدود کرده
و اجرای
دستورات از
راه دور را
غیرفعال
میکند.
حالت محدود در صورتی فعال میشود که گزینهٔ R داده شود یا اگر lsz تشخیص دهد که تحت یک پوستهٔ محدود (restricted shell) اجرا میشود یا متغیر محیطی ZMODEM_RESTRICTED یافت شود.
حالت محدود را میتوان با گزینهٔ U غیرفعال کرد، به شرطی که تحت یک پوستهٔ محدود اجرا نشده باشد.
- استفاده از گزینههای
- --tcp-client یا --tcp-server یک خطر امنیتی به همراه دارد، چرا که شخص دیگری میتواند پیش از شما به پورت متصل شده و دادههای شما را برباید. اگر تقاضای زیادی برای یک حالت امنتر وجود داشته باشد، ممکن است نوعی احراز هویت با گذرواژه ایجاد کنم.
محیط (ENVIRONMENT)
- ZNULLS
- میتواند برای تعیین تعداد بایتهای null ارسالی پیش از یک فریم ZDATA استفاده شود.
- SHELL
- اگر این متغیر شامل rsh یا rksh باشد، lsz پوسته را محدود تشخیص میدهد.
- ZMODEM_RESTRICTED
- اگر این متغیر تنظیم شده باشد، lrz وارد حالت محدود میشود.
- TMPDIR
- اگر این متغیر محیطی تنظیم شده باشد، مقدار آن به عنوان دایرکتوری قرارگیری فایل پاسخ به یک درخواست timesync استفاده میشود. TMP اگر TMPDIR تنظیم نشده باشد، به جای آن استفاده میشود. اگر هیچیک از TMPDIR یا TMP تنظیم نشده باشند، از /tmp استفاده خواهد شد.
مثالها (EXAMPLES)
انتقال
فایل ZMODEM (از Unix
به DSZ/ZCOMM/Professional-YAM)
% sz -a *.c
این
تکدستور
تمام
فایلهای .c
در
دایرکتوری
فعلی Unix را با
تبدیل (-a)
قراردادهای
پایان خط
مناسب محیط
دریافتکننده،
انتقال
میدهد. با
فعال بودن
قابلیت AutoDownload
در ZMODEM،
برنامههای
Professional-YAM و ZCOMM پس از
انجام یک
بررسی
امنیتی،
فایلها را
بهطور
خودکار
دریافت
خواهند
کرد.
% sz -Yan *.c *.h
تنها
فایلهای .c و
.h که در هر دو
سیستم وجود
دارند و در
سیستم
فرستنده
جدیدتر از
نسخهٔ
متناظر در
سیستم
گیرنده
هستند را
ارسال
میکند و
قالب متنی Unix
را به DOS
تبدیل
مینماید.
$ sz -\Yan file1.c file2.c file3.c foo.h baz.h
(برای VMS)
دانلود
دستور ZMODEM (از Unix
به Professional-YAM)
cpszall:all
sz -c "c:;cd /yam/dist"
sz -ya $(YD)/*.me
sz -yqb y*.exe
sz -c "cd /yam"
sz -i "!insms"
این
قطعهکد Makefile
از sz برای
ارسال
دستورات به
Professional-YAM جهت
تغییر دیسک
و
دایرکتوری
فعلی
استفاده
میکند.
سپس، sz
فایلهای .me
را از
دایرکتوری $YD
انتقال
داده و به
گیرنده
دستور
میدهد
فایلهای
قدیمی را
بازنویسی
کند و
قراردادهای
پایان خط را
از Unix به PC-DOS
تبدیل
نماید. خط
سوم تعدادی
فایل .exe را
انتقال
میدهد.
خطوط چهارم
و پنجم به Pro-YAM
دستور
میدهند تا
دایرکتوری
را تغییر
داده و یک batch file
تحت PC-DOS به نام
insms را اجرا
کند. از آنجا
که اجرای
این batch file زمان
قابلتوجهی
میبرد، از
شکل -i
استفاده
شده است تا
به sz امکان
خروج فوری
داده شود.
انتقال
فایل XMODEM (از Unix
به Crosstalk)
% sx -a foo.c
ESC
rx foo.c
سه دستور
فوق یک فایل
منفرد را از
Unix به یک
رایانهٔ
شخصی (PC) و Crosstalk
انتقال
میدهند،
در حالی که sz
نویسههای
پایان خط (newlines)
در Unix را به DOS CR/LF
تبدیل
میکند. این
ترکیب
بسیار
کندتر و
بسیار
کماطمینانتر
از ZMODEM است..SH
"پیامهای
خطا (ERROR MESSAGES)" "Caught signal 99"
نشاندهنده
این است که
برنامه به
درستی
کامپایل
نشده است؛
برای
جزئیات
بیشتر به
"bibi(99)" در rbsb.c
مراجعه
کنید.
همچنین ببینید (SEE ALSO)
rz(omen), ZMODEM.DOC, YMODEM.DOC, Professional-YAM, crc(omen), sq(omen), todos(omen), tocpm(omen), tomac(omen), yam(omen)
گزینههای زمان کامپایل مورد نیاز برای سیستمعاملهای مختلف در فایل منبع شرح داده شدهاند.
نسخه VMS (VMS VERSION)
نسخه VMS از نویسههای عام (wildcards) پشتیبانی نمیکند. به دلیل VMS DCL، حروف بزرگ گزینهها باید با قرار دادن پیش از نویسه مشخص شوند.
نسخه فعلی VMS از XMODEM، XMODEM-1k یا YMODEM پشتیبانی نمیکند.
ورودی/خروجی استاندارد VMS C و RMS ممکن است در تعامل با یکدیگر محتوای فایل را تغییر دهند.
فایلها (FILES)
کد ۳۲ بیتی CRC به لطف Gary S. Brown.
sz.c, crctab.c, rbsb.c, zm.c, zmodem.h فایلهای منبع Unix
sz.c, crctab.c, vrzsz.c, zm.c, zmodem.h, vmodem.h, vvmodem.c, فایلهای منبع VMS.
/tmp/szlog خروجی اشکالزدایی را ذخیره میکند (sz -vv) (szlog در VMS).
ویژگی آزمایش (TESTING FEATURE)
دستور "sz -T file" با ایجاد خطاهایی از طریق بستههای پایاننیافته، بازیابی از خطای توالی Attn را میآزماید. برنامه گیرنده باید پنج بار در مورد طولانی بودن بیش از حد بستههای داده باینری هشدار دهد. هر بار که اجرای sz متوقف شود، باید یک سرایند ZDATA و به دنبال آن یک بسته معیوب دیگر ارسال کند. اگر گیرنده پنج بسته داده طولانی را شناسایی نکند، توالی Attn باعث توقف فرستنده نشده است و رشته Myattn در sz.c باید اصلاح شود.
پس از ۵ بسته، sz «انتقال» را متوقف کرده و تعداد کل نویسههای «ارسالشده» (Tcount) را چاپ میکند. تفاوت میان Tcount و ۵۱۲۰ نشاندهنده تعداد نویسههای ذخیرهشده در بافرهای مختلف هنگام ایجاد توالی Attn است.
گزارش باگها (BUGS)
فراخوانی sz از بیشتر نسخههای cu(1) کار نمیکند؛ زیرا فرایند دریافت cu بر سر دریافت نویسهها از مودم با sz رقابت میکند.
در حداقل یک سیستم BSD، هنگامی که sz به چند کیلوبایتی پایان فایل میرسید متوقف شده یا خارج میشد. استفاده از پرچم "-w 8192" این مشکل را برطرف کرد. علت واقعی نامشخص است؛ شاید اشکالی در روتینهای خروجی TTY هسته باشد.
برنامههایی که پروتکل انتقال فایل مشخصشده را به درستی پیادهسازی نمیکنند، ممکن است باعث شوند sz درگاه را برای یک یا دو دقیقه در حالت معلق (hang) نگه دارد. این مشکل با استفاده از ZCOMM، Pro-YAM یا برنامههای دیگری با پیادهسازی صحیح از پروتکل مشخصشده، برطرف میشود.
بسیاری از برنامههایی که ادعای پشتیبانی از YMODEM را دارند، تنها از XMODEM با بلوکهای 1k پشتیبانی میکنند و اغلب آن را نیز به درستی اجرا نمیکنند.
انتقالهای XMODEM تا حداکثر ۱۲۷ بایت داده نامعتبر به ازای هر فایل اضافه میکنند. انتقالهای XMODEM-1k و YMODEM-1k از بلوکهای ۱۲۸ بایتی استفاده میکنند تا از فاصلهگذاری (padding) اضافی جلوگیری شود.
برنامههای YMODEM از طول فایل ارسالی در ابتدای انتقال برای کوتاه کردن فایل به اندازه صحیح استفاده میکنند؛ این امر ممکن است برای فایلهای مبدئی که در حین انتقال گسترش مییابند مشکلساز شود. این مشکل در انتقالهای ZMODEM که اندازه دقیق فایل را بدون قید و شرط حفظ میکنند، رخ نمیدهد.
بیشتر گزینههای ZMODEM صرفاً به برنامه گیرنده منتقل میشوند؛ برخی گیرندهها تمامی این گزینهها را پیادهسازی نمیکنند.
هنگامی که ورودی از لولهها (pipes) تأمین میشود، باید به جای تأیید فریمها در هر ۱۰۲۴ بایت، از بافر حلقوی و پنجره لغزان ZMODEM استفاده شود. اگر هیچ فایلی باز نشود، sz یک دستور ZMODEM ارسال میکند تا پیام خطای مناسبی بازتاب یابد؛ شاید بهتر باشد برنامه پیش از شروع هرگونه فرایند، وجود حداقل یک فایل در دسترس را بررسی کند. حالت آزمایشی فایلی با اندازه صفر در سیستم گیرنده بر جای میگذارد.
برخی از مودمهای سرعت بالا دارای یک باگ میانافزاری هستند که در زمان تغییر جهت انتقال پرسرعت، نویسهها را جا میاندازند. متغیر محیطی ZNULLS میتواند برای مشخص کردن تعداد نویسههای null ارسالی پیش از یک فریم ZDATA استفاده شود. مقادیر ۱۰۱ برای یک رایانه 4.77 mHz و ۱۲۴ برای یک سیستم AT مقادیر معمولی هستند.
| 2.6.1996 | lrzsz-0.12b |