Tại liên kết cứng và liên kết bài viết MSDN, người ta có thể đọc như sau:
Liên kết cứng là biểu diễn hệ thống tệp của một tệp mà nhiều hơn một đường dẫn tham chiếu một tệp trong cùng một ổ đĩa. Để tạo một liên kết cứng, hãy sử dụng chức năng CreateHardLink. Mọi thay đổi đối với tệp đó sẽ hiển thị ngay lập tức đối với các ứng dụng truy cập tệp đó thông qua các liên kết cứng tham chiếu tệp đó. Tuy nhiên, kích thước mục nhập và thông tin thuộc tính chỉ được cập nhật cho liên kết thông qua đó thay đổi được thực hiện. Lưu ý rằng các thuộc tính trên tệp được phản ánh trong mọi liên kết cứng đến tệp đó và các thay đổi đối với các thuộc tính của tệp đó truyền đến tất cả các liên kết cứng. Ví dụ: nếu bạn đặt lại thuộc tính READONLY trên một liên kết cứng để xóa liên kết cứng cụ thể đó và có nhiều liên kết cứng đến tệp thực tế,
Ai đó có thể có ý nghĩa của đoạn văn trên?
Không phải các thuộc tính câu lệnh trên tệp được phản ánh trong mọi liên kết cứng đến tệp đó tương đương với các thay đổi của câu lệnh đối với các thuộc tính của tệp đó truyền đến tất cả các liên kết cứng ?
Làm thế nào để thiết lập lại bit READONLY có thể đưa tệp và tất cả các liên kết cứng còn lại trở về trạng thái SYN SÀNG ?
BIÊN TẬP
Sau khi đọc câu trả lời tuyệt vời của JdeBP cho câu hỏi này, tôi vẫn còn nghi ngờ.
Tôi hiểu rằng có một bản sao một phần của MFT $STANDARD_INFORMATION
cho mỗi liên kết cứng trỏ đến mục này mà theo câu trả lời thậm chí không được cập nhật trừ khi liên kết cứng được đổi tên, tạo hoặc hủy . Điều gì xảy ra khi một người đọc thuộc tính của một liên kết cứng? Tôi đoán bản sao của liên kết cứng $STANDARD_INFORMATION
này bị bỏ qua vì nó có thể không phản ánh trạng thái hiện tại và các thuộc tính đang được đọc trực tiếp từ mục nhập của MFT $STANDARD_INFORMATION
. Ngoài ra, trong quá trình này, không có thông tin nào được cập nhật vì đây không phải là bất kỳ hoạt động nào bạn liệt kê. Có phải vậy không?
Nếu người ta tắt bit R để cho phép xóa một liên kết cứng vào tệp, thì (giả sử đó không phải là liên kết cuối cùng), người ta phải đặt lại bit R một lần nữa, bằng mọi cách, để tạo tệp chỉ đọc một lần nữa.
Bây giờ, tôi không nghĩ rằng đó không phải là phần liên kết cuối cùng . Tôi không thấy cách liên kết là người cuối cùng tạo ra sự khác biệt ở đây. Vẫn còn một tệp (mục nhập của MFT) và người ta có thể thay đổi trực tiếp các thuộc tính của nó (không thông qua bất kỳ liên kết nào). Hoặc là để nếu có một tệp có một liên kết có nghĩa là không có sự tương ứng giữa các mục và tệp của MFT?