3
รับล็อกการอ่าน / เขียนแบบเอกสิทธิ์เฉพาะบุคคลในไฟล์สำหรับการปรับปรุงอะตอม
ฉันต้องการมีไฟล์ที่ใช้เป็นตัวนับ ผู้ใช้ A จะเขียนและเพิ่มจำนวนนี้ในขณะที่ผู้ใช้ B ขอให้อ่านไฟล์ เป็นไปได้หรือไม่ที่ผู้ใช้ A สามารถล็อคไฟล์นี้เพื่อให้ไม่มีใครสามารถอ่านหรือเขียนไฟล์ได้จนกว่าการเขียนของผู้ใช้จะเสร็จสิ้น? ฉันดูแล้วflockแต่ดูเหมือนจะไม่สามารถใช้งานได้ตามที่คาดหวัง flock -x -w 5 /dev/shm/counter.txt echo "4" > /dev/shm/counter.txt && sleep 5 หากมีวิธีที่เหมาะสมกว่าในการรับไฟล์ที่เพิ่มขึ้นคล้ายกับอะตอมนี้ซึ่งจะเป็นการฟังที่ดีเช่นกัน! เป้าหมายของฉันคือ: LOCK counter.txt; write to counter.txt; ในขณะที่ในเวลาเดียวกัน Read counter.txt; realize it's locked so wait until that lock is finished.