อ่าน 1 นาที
อ่าน (การเรียกใช้ระบบ)
ในระบบปฏิบัติการ ที่ทันสมัย ซึ่งเป็นไปตามมาตรฐานPOSIXโปรแกรมที่ต้องการเข้าถึงข้อมูลจากไฟล์ที่จัดเก็บอยู่ในระบบไฟล์จะใช้การเรียกใช้ระบบ `read`ไฟล์จะถูกระบุด้วยตัวระบุไฟล์ (file...
อ่าน (การเรียกใช้ระบบ)
ในระบบปฏิบัติการ ที่ทันสมัย ซึ่งเป็นไปตามมาตรฐานPOSIXโปรแกรมที่ต้องการเข้าถึงข้อมูลจากไฟล์ที่จัดเก็บอยู่ในระบบไฟล์จะใช้การเรียกใช้ระบบ `read`ไฟล์จะถูกระบุด้วยตัวระบุไฟล์ (file descriptor)ซึ่งโดยปกติจะได้รับจากการเรียกใช้ ` open` ก่อนหน้านี้ การเรียกใช้ระบบนี้จะอ่านข้อมูลเป็นไบต์ โดย จำนวนไบต์จะถูกกำหนดโดยผู้เรียกใช้ และจัดเก็บข้อมูลนั้นลงในบัฟเฟอร์ที่จัดเตรียมโดยกระบวนการที่เรียกใช้
ฟังก์ชันอ่าน (read) รับอาร์กิวเมนต์สามตัว:
- ตัวระบุไฟล์ของไฟล์นั้น
- บัฟเฟอร์ที่ใช้สำหรับจัดเก็บข้อมูลที่อ่านได้
- จำนวนไบต์ที่จะอ่านจากไฟล์
การใช้งาน POSIX
อินเทอร์เฟซการเรียกใช้ระบบอ่านข้อมูลได้รับการกำหนดมาตรฐานโดยข้อกำหนด POSIX ข้อมูลจากไฟล์จะถูกอ่านโดยการเรียกใช้ฟังก์ชันอ่าน:
ssize_t read ( int fd , void * buf , size_t count );ค่าที่ส่งกลับมาคือจำนวนไบต์ที่อ่านได้ (ศูนย์หมายถึงสิ้นสุดไฟล์ ) และตำแหน่งในไฟล์จะเลื่อนไปข้างหน้าตามจำนวนนี้ หากจำนวนนี้น้อยกว่าจำนวนไบต์ที่ร้องขอ จะไม่ถือว่าเป็นข้อผิดพลาด ตัวอย่างเช่น อาจเกิดขึ้นเพราะมีจำนวนไบต์ที่ใช้งานได้จริงน้อยกว่า (อาจเป็นเพราะเราใกล้ถึงจุดสิ้นสุดไฟล์ หรือเพราะเรากำลังอ่านจากไปป์หรือจากเทอร์มินัล ) หรือเพราะการเรียกใช้ระบบถูกขัดจังหวะด้วย สัญญาณ
อีกทางเลือกหนึ่งคือ จะส่งค่า -1 กลับมาเมื่อเกิดข้อผิดพลาด ในกรณีดังกล่าวค่า errnoจะถูกตั้งค่าอย่างเหมาะสม และจะไม่ระบุว่าตำแหน่งไฟล์ (ถ้ามี) จะเปลี่ยนแปลงหรือไม่
ดูเพิ่มเติม
ลิงก์ภายนอก
สรุปเนื้อหา
ข้อมูลสำคัญจากบทความ
ข้อมูลสำคัญเกี่ยวกับ อ่าน (การเรียกใช้ระบบ)
ในระบบปฏิบัติการ ที่ทันสมัย ซึ่งเป็นไปตามมาตรฐานPOSIXโปรแกรมที่ต้องการเข้าถึงข้อมูลจากไฟล์ที่จัดเก็บอยู่ในระบบไฟล์จะใช้การเรียกใช้ระบบ `read`ไฟล์จะถูกระบุด้วยตัวระบุไฟล์ (file...
การใช้งาน POSIX
อินเทอร์เฟซการเรียกใช้ระบบอ่านข้อมูลได้รับการกำหนดมาตรฐานโดยข้อกำหนด POSIX ข้อมูลจากไฟล์จะถูกอ่านโดยการเรียกใช้ฟังก์ชันอ่าน:
ลิงก์ภายนอก
C_Programming/C_Reference/stdio.h/freadที่วิกิตำรา ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=Read_(system_call)&oldid=1324091913 "