Menedżer plików obsługuje zarówno losowe jak i strumieniowe czytanie i zapisywanie do pliku. Przechowuje on w pamięci podręcznej dotychczas odczytaną zawartość pliku i w regularnych odstępach czasowych zapisuje do pliku zmienioną zawartość. Zawartość pliku jest czytana blokami o rozmiarze i wyrównanymi do adresu strony pamięci.
Menedżer plików jest modułem eksperymentalnym, tzn. nie został do końca przetestowany.
Plik posiada pozycję, od której będzie dokonywany odczyt lub zapis danych. Po każdym odczycie lub zapisie danych pozycja ta jest przesuwana na koniec tych odczytanych lub zapisanych danych. W każdej chwili pozycję tę można odczytać lub ustawić procedurami:
N E_mem_Q_file_R_pos( I id ); N E_mem_Q_file_P_pos( I id , N pos );
Obiekt otwartego pliku tworzymy i wyrzucamy procedurami:
I E_mem_Q_file_M( Pc path , B readonly , mode_t create_mode ); N E_mem_Q_file_W( I id );
Procedura “E_mem_Q_file_M” posiada dodatkowy parametr informujacy, czy otworzyć plik w trybie tylko do odczytu (wtedy procedury zapisu danych nie mogą być używane), oraz kolejny, czy utworzyć plik i z jakimi prawami dostępu (jeśli różny od 0).
Z pliku można czytać i do niego zapisywać: bajt danych, ciąg bajtów, liczbę N16, N32, N64. Można te dane odczytać, zapisać na bieżącej pozycji w pliku oraz można je wstawić. Można też usuwać ciąg bajtów od bieżącej pozycji.
Ponadto menedżer plików posiada początki obsługi UTF-8: pozwala odczytać z pliku następny znak Unicode w tym kodowaniu.
Do pomocy przy parsowaniu plików UTF-8 służą procedury czytające ciąg znaków aż do wystąpienia jednego z podanych albo aż do niewystąpienia takowego:
N E_mem_Q_file_R_u_upto( I id , Pc upto , Pc *s ); N E_mem_Q_file_R_u_upto_0( I id , Pc *s ); N E_mem_Q_file_R_u_outof( I id , Pc outof , Pc *s ); N E_mem_Q_file_R_u_outof_0( I id , N *l , U *u );
Tworzą one w wyniku i przypisują zmiennej “s” nowo przydzielony blok pamięci zawierający odczytany ciąg znaków UTF-8 łącznie ze znakiem, który przerwał wykonywanie procedury, znajdującym się na końcu. Trzeba ten ciąg znaków po użyciu wyrzucić instrukcją “W(s)”.
Wszystkie procedury dostępne do użycia znajdują się w pliku “mem-file.cx”.