นี่คือคำสั่ง cpipe ที่สามารถเรียกใช้ในผู้ให้บริการโฮสต์ฟรีของ OnWorks โดยใช้เวิร์กสเตชันออนไลน์ฟรีของเรา เช่น Ubuntu Online, Fedora Online, โปรแกรมจำลองออนไลน์ของ Windows หรือโปรแกรมจำลองออนไลน์ของ MAC OS
โครงการ:
ชื่อ
cpipe - คัดลอก stdin ไปยัง stdout ขณะนับไบต์และรายงานความคืบหน้า
เรื่องย่อ
ซีพียู [-b bsize] [-vt] [-vr] [-vw] [-ngr] [-s ความเร็ว]
OPTIONS
-b ขนาดบัฟเฟอร์ในหน่วย kB
1 ค่า Int ระหว่าง 1 ถึง oo
ค่าเริ่มต้น: `128'
-vt แสดงปริมาณงาน
-vr แสดงเวลาอ่าน
-vw แสดงเวลาเขียน
-ngr อ่านไม่โลภ อย่าบังคับใช้บัฟเฟอร์เต็มในการอ่านก่อนเริ่มเขียน
-s จำกัดความเร็วของปริมาณงานในหน่วย kB/s
1 ค่าสองเท่าระหว่าง 1 และ oo
DESCRIPTION
ซิป คัดลอกอินพุตมาตรฐานไปยังเอาต์พุตมาตรฐานในขณะที่วัดเวลาที่ใช้
เพื่ออ่านบัฟเฟอร์อินพุตและเขียนบัฟเฟอร์เอาต์พุต ถ้าตัวใดตัวหนึ่งหรือมากกว่านั้น -vx ตัวเลือกคือ
ให้พิมพ์สถิติของปริมาณงานเฉลี่ยและจำนวนไบต์ทั้งหมดที่คัดลอก
ไปยังเอาต์พุตข้อผิดพลาดมาตรฐาน
ไม่ โลภ อ่าน
โดยปกติ cpipe จะพยายามเติมบัฟเฟอร์ให้เต็ม (ตัวเลือก -b) ก่อนจะเริ่ม
การเขียน. อย่างไรก็ตาม ในบางสถานการณ์ เช่น หากคุณพูดคุยกับโปรแกรมโต้ตอบผ่าน cpipe
สิ่งนี้ทำให้การสื่อสารหยุดชะงัก: โปรแกรมดังกล่าวรอการป้อนข้อมูลซึ่งมันไม่เคยเห็น
เนื่องจากอินพุตติดค้างอยู่ในบัฟเฟอร์ของ cpipe แต่ cpipe เองจะไม่เห็นอินพุตเพิ่มเติม
ก่อนที่โปรแกรมจะไม่ตอบสนอง
เพื่อหลีกเลี่ยงปัญหานี้ ลองใช้ -ngr. เมื่อออก read call cpipe ก็พอใจเช่นกัน
ทันทีที่ได้รับอย่างน้อยหนึ่งไบต์ แทนที่จะเติมบัฟเฟอร์ จะหยุดอ่านและ
เขียนอะไรก็ได้ที่ได้รับไปยังเอาต์พุต อย่างไรก็ตาม โปรดทราบว่าการวัดปริมาณงานจะ
แม่นยำน้อยกว่าหากจำนวนไบต์ที่ถ่ายโอนในคู่การอ่าน/เขียนหนึ่งคู่มีขนาดเล็ก
เพราะ cpipe จะใช้เวลาค่อนข้างมากขึ้นในการทำงานกับทุกๆ ไบต์
การ จำกัด ทางเข้า
หากมีการระบุขีดจำกัดปริมาณงานด้วยตัวเลือก -s, ซีพียู โทร หลับ(3) อยู่ระหว่าง
การคัดลอกบัฟเฟอร์จึงขยายระยะเวลาของรอบการอ่าน/เขียนเกินจริง ตั้งแต่
ในระบบส่วนใหญ่มีเวลาขั้นต่ำที่แน่นอน usleep() sleeps เช่น 0.01s มันคือ
เป็นไปไม่ได้ที่จะถึงขีด จำกัด สูงด้วยขนาดบัฟเฟอร์ขนาดเล็ก ในกรณีนี้การเพิ่ม
ขนาดบัฟเฟอร์ (ตัวเลือก -b) อาจช่วยได้ อย่างไรก็ตาม โปรดทราบว่าสิ่งนี้จะจำกัดปริมาณงาน
โดยเฉลี่ยเท่านั้น ทุกบัฟเฟอร์เดียวจะถูกคัดลอกโดยเร็วที่สุด
ตัวอย่าง
คำสั่ง
tar cCf / - usr | cpipe -vr -vw -vt > /dev/null
ผลลัพธ์ในผลลัพธ์เช่น
...
ใน: 19.541ms ที่ 6.4MB/s ( 4.7MB/s เฉลี่ย) 2.0MB
ออก: 0.004ms ที่ 30.5GB/s ( 27.1GB/s เฉลี่ย) 2.0MB
ถึง: 19.865ms ที่ 6.3MB/s ( 4.6MB/s เฉลี่ย) 2.0MB
...
พื้นที่ เป็นครั้งแรก คอลัมน์ แสดงเวลาที่ใช้ในการจัดการหนึ่งบัฟเฟอร์ของข้อมูล (ค่าเริ่มต้น 128kB)
การอ่านการโทรใช้เวลา 19.541ms การเขียนการโทรไปยัง /dev/null ใช้เวลาเพียง 0.004ms และจาก
เริ่มต้นการอ่านจนจบการเขียน ใช้เวลา 19.865 มิลลิวินาที
พื้นที่ ที่สอง คอลัมน์ แสดงผลการแบ่งขนาดบัฟเฟอร์ (ค่าเริ่มต้น 128kB) ด้วย
ครั้งในคอลัมน์แรก
พื้นที่ ที่สาม คอลัมน์ มีค่าเฉลี่ยของค่าที่วัดได้ทั้งหมดตั้งแต่เริ่มต้น
โครงการ
ในที่สุด ล่าสุด คอลัมน์ แสดงจำนวนไบต์ที่โอนทั้งหมดซึ่งแน่นอน
เหมือนกันสำหรับการอ่านและการเขียน
ใช้ cpipe ออนไลน์โดยใช้บริการ onworks.net