Liệt kê tất cả các tệp có trong bộ đệm


8

Câu hỏi này trả lời cho câu hỏi về cách tìm phần nào của bộ đệm. Tuy nhiên, trong fincoretệp thực thi, bạn phải truyền tên tệp để kiểm tra xem nó có phải là một phần của bộ đệm không.

Có một công cụ hoặc một phương pháp để tìm tất cả các mục là một phần của bộ nhớ đệm mà không thông qua tên tệp.

PS: Chúng tôi đang chạy nó trong một hệ thống nhúng và chạy một vòng lặp for và truyền tất cả các tệp cho fincorechính nó là một quá trình tiêu tốn nhiều thời gian và bộ nhớ hơn. Do đó, tôi đang tìm kiếm các phương pháp khác.

Câu trả lời:


6

Tôi không biết bất cứ nơi nào mà kernel phơi bày tên tệp được liên kết với các khối mà nó đã lưu trong bộ nhớ cache. Theo câu trả lời này

https://stackoverflow.com/a/4941371

Điều tốt nhất bạn có thể làm ngay cả với một mô-đun hạt nhân tùy chỉnh sẽ là lấy danh sách các nút và thiết bị. Từ đó bạn vẫn có thể cần phải đi bộ hệ thống tập tin tìm kiếm các tập tin đó.

Sau đó, bạn có thể hỏi "Nhưng, làm thế nào để fincorebiết về các tệp tôi đã liệt kê?" Hoặc bạn có thể không, nhưng tôi thấy phương pháp này khá thông minh, vì vậy đây là. Công fincorecụ này hoạt động bằng cách làm như sau:

Cuộc mincoregọi hệ thống cho bạn biết liệu các trang bộ nhớ đã cho có nằm trong bộ nhớ lõi hay không (nghĩa là sẽ không gây ra lỗi trang khi truy cập). Vì mmaplười biếng tải tệp được ánh xạ và chúng tôi chưa đọc bất kỳ khu vực được ánh xạ nào, nên bất kỳ trang nào không gây ra lỗi trang phải là một phần của bộ đệm của chúng tôi.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.