| PIPESZ(1) | دستورهای کاربری | PIPESZ(1) |
نام (NAME)
pipesz - تنظیم و بررسی اندازه بافر پایپها و FIFOها
خلاصه دستور (SYNOPSIS)
pipesz [options] [--set size] [--] [command [argument...]]
pipesz [options] --get
توضیحات (DESCRIPTION)
پایپها و FIFOها یک بافر داخلی را برای انتقال دادهها میان سر خواندن و سر نوشتن نگه میدارند. در برخی موارد، اندازه پیشفرض این بافر داخلی ممکن است مناسب نباشد. این برنامه امکاناتی را برای تنظیم و بررسی اندازه این بافرها فراهم میکند.
عملیات --set اندازه بافر پایپ را تنظیم میکند. اگر این گزینه مشخص شود، باید همراه با یک size صریح مشخص گردد. در غیر این صورت، این مقدار ضمنی در نظر گرفته شده و اندازه از /proc/sys/fs/pipe-max-size خوانده میشود. هسته ممکن است size را همانطور که در fcntl(2) شرح داده شده تنظیم کند. برای مشاهده اندازه واقعی بافرهایی که تنظیم میشوند، از گزینهٔ --verbose استفاده کنید. اگر نه --file و نه --fd مشخص نشده باشند، --set بر روی خروجی استاندارد عمل میکند.
عملیات --set امکان اجرای یک command اختیاری را پس از تنظیم اندازه بافر پایپ فراهم میکند. این دستور با پایپهای تنظیمشده اجرا میشود.
عملیات --get دادهها را در قالب جدول خروجی میدهد. ستون نخست، نام پایپ به همان صورت دادهشده به pipesz است. توصیفکنندههای پرونده به صورت "fd N" نامگذاری میشوند. ستون دوم اندازه بافر داخلی پایپ بر حسب بایت است. ستون سوم تعداد بایتهای خواندهنشده موجود در پایپ است. ستونها با تب ('\t'، کد ASCII 09h) از هم جدا میشوند. اگر --verbose مشخص شده باشد، یک سربرگ توضیحی نیز نمایش داده میشود. اگر نه --file و نه --fd مشخص نشده باشند، --get بر روی ورودی استاندارد عمل میکند.
مگر اینکه گزینهٔ --check مشخص شده باشد، در صورت مواجهه با خطا هنگام دستکاری یک پرونده یا توصیفکننده پرونده، pipesz خارج نمیشود. این امر امکان استفاده عمومی از pipesz را بدون ترس از مختل شدن اجرای خطوط لوله در صورتی که نوع برخی پروندهها بعداً تغییر کند، فراهم میسازد. برای کمترین میزان اختلال، گزینهٔ --quiet از صدور هشدارها در این موارد جلوگیری میکند.
هسته محدودیتهایی را برای میزان فضای بافر پایپ که فرآیندهای بدون امتیاز میتوانند استفاده کنند اعمال میکند، هرچند به بخش اشکالات (BUGS) در زیر مراجعه کنید. هسته همچنین در صورتی که کوچک کردن بافر پایپ منجر به از دست رفتن دادههای بافرشده شود، از انجام آن خودداری میکند. برای جزئیات بیشتر به pipe(7) مراجعه کنید.
دستور pipesz از مشخص کردن چندین گزینهٔ کوتاه به صورت متوالی، به شیوهٔ معمول getopt(3) پشتیبانی میکند. اولین آرگومان غیرگزینهای به عنوان command تفسیر میشود. اگر ممکن است command با '-' شروع شود، از '--' برای جدا کردن آن از آرگومانهای pipesz استفاده کنید. در اسکریپتهای پوسته، استفاده از '--' در هنگام بسط پارامترها روش مناسبی است. خود pipesz از ورودی استاندارد نمیخواند و در خروجی استاندارد نمینویسد، مگر اینکه --get، --help یا --version مشخص شده باشند.
گزینهها (OPTIONS)
-g, --get
-s, --set size
-f, --file path
-n, --fd number
-i, --stdin
-o, --stdout
-e, --stderr
-c, --check
-q, --quiet
-v, --verbose
-h, --help
-V, --version
مثالها (EXAMPLES)
pipesz dd if=file bs=1M | ...
pipesz -s1M -cf /run/my-service.fifo
echo hello | pipesz -g
find /proc/PID/fd -exec pipesz -gqf '{}' ';'
نکات (NOTES)
لینوکس از نگارش هسته ۲.۶.۳۵ به بعد از تنظیم اندازه بافرهای پایپ پشتیبانی میکند. این نگارش همچنین /proc/sys/fs/pipe-max-size را معرفی کرد.
این برنامه از F_GETPIPE_SZ/F_SETPIPE_SZ در fcntl(2) برای دریافت و تنظیم اندازههای بافر پایپ استفاده میکند.
این برنامه از FIONREAD در ioctl(2) برای گزارش مقدار دادههای خواندهنشده در پایپها استفاده میکند. اگر بنا به دلیلی این عملیات ناموفق باشد، مقدار دادههای خواندهنشده ۰ گزارش میشود.
اشکالات (BUGS)
پیش از لینوکس ۴.۹، برخی اشکالات بر نحوه اعمال محدودیتهای خاص منابع هنگام تنظیم اندازه بافر پایپ تأثیر میگذاشتند. برای جزئیات به pipe(7) مراجعه کنید.
نویسندگان (AUTHORS)
Nathan Sharp <nwsharp@live.com>
همچنین ببینید (SEE ALSO)
گزارش باگها (REPORTING BUGS)
برای گزارش باگها از ردیاب مشکلات https://github.com/util-linux/util-linux/issues.
دسترسی (AVAILABILITY)
دستور pipesz بخشی از بستهٔ util-linux است که میتوان آن را از بایگانی هسته لینوکس https://www.kernel.org/pub/linux/utils/util-linux.
| 2026-09-02 | util-linux 2.42.3 |