7
ทดสอบว่า file descriptor ถูกต้องหรือไม่
ฉันต้องการสร้างสคริปต์ทุบตีข้อมูลเพิ่มเติมให้กับ file descriptors (FDs) มากกว่าหรือเท่ากับ 3 เมื่อเปิด เพื่อทดสอบว่า FD เปิดอยู่หรือไม่ฉันได้วางแผนเคล็ดลับต่อไปนี้: if (printf '' 1>&3) 2>&-; then # File descriptor 3 is open else # File descriptor 3 is not open fi นี่เพียงพอสำหรับความต้องการของฉัน แต่ฉันอยากรู้ว่ามีวิธีการทดสอบที่เป็นไปตามสำนวนมากขึ้นหรือไม่ถ้า FD นั้นถูกต้อง ฉันสนใจเป็นพิเศษเกี่ยวกับว่ามีการแม็พfcntl(1)syscall กับคำสั่งเชลล์หรือไม่ซึ่งจะอนุญาตให้เรียกใช้แฟล็ก FD ( O_WRONLYและ O_RDWRเพื่อทดสอบว่า FD สามารถเขียนได้หรือไม่O_RDONLYและ O_RDWRเพื่อทดสอบว่า FD อ่านได้หรือไม่)