جارٍ تحميل الدرس...
في نافذة الطباعة اختر «حفظ كملف PDF» كوجهة.
معمل نظم التشغيل - الأسبوع السادس
C#مشاركة بيانات الملفات والوصول إليها عشوائيا عبر الذاكرة
RAM)، يتيح الوصول إلى بيانات الملف كما لو كانت ذاكرة عادية، دون استدعاءات قراءة/كتابة متكررة.MemoryMappedFile.CreateFromFile ملفا على القرص في الذاكرة، وتنشئه إن لم يكن موجودا| المعامل | المعنى |
|---|---|
filePath | اسم الملف المراد تعيينه |
FileMode.OpenOrCreate | ينشئ الملف إن لم يكن موجودا، ويفتحه إن كان موجودا |
null | اسم التعيين الافتراضي، أي تعيين بلا اسم |
fileSize | حجم المنطقة المعينة على الذاكرة |
using System.IO.MemoryMappedFiles;
var mmf = MemoryMappedFile.CreateFromFile(
filePath, FileMode.OpenOrCreate, null, fileSize);100 MBlong fileSize = 1024 * // = 1 KB
1024 * // = 1 MB
100; // = 100 MBmmf.CreateViewAccessor() كائن وصول للقراءة والكتابة عند أي موضع بايتWriteArray(position, data, offset, count) بايتات بدءا من موضع محدد في الملفusing var accessor = mmf.CreateViewAccessor();
string dataToWrite = "Hello, Memory-Mapped Files!";
byte[] dataBytes = Encoding.UTF8.GetBytes(dataToWrite);
accessor.WriteArray(30, dataBytes, 0, dataBytes.Length);ReadArray(position, buffer, offset, count) بايتات بدءا من موضع محددbyte[] readData = new byte[2];
accessor.ReadArray(34, readData, 0, 2);
string readDataString = Encoding.UTF8.GetString(readData);30 عبر كائن الوصول بدءا من أي إزاحة ضمن ذلك المدى30
H
31
e
32
l
33
l
34
o
35
,
34 تعيد المحارف عند تلك الإزاحة بالضبط: `o,`CreateFromFile
يفتح الملف أو ينشئه ويحجز حجم المنطقة
CreateViewAccessor
ينشئ كائن الوصول
WriteArray / ReadArray
قراءة وكتابة بوصول عشوائي عند أي موضع بايت
Mahmoud Abas|معمل نظام التشغيل - الأسبوع 6