Trên hệ thống tập tin Linux của tôi, một liên kết tượng trưng trỏ đến 127.0.1.1:+xxxxx
.
Tại sao dấu cộng? Cũng có thể có một điểm trừ? Tại sao không chỉ 127.0.1.1:xxxxx
?
Trên hệ thống tập tin Linux của tôi, một liên kết tượng trưng trỏ đến 127.0.1.1:+xxxxx
.
Tại sao dấu cộng? Cũng có thể có một điểm trừ? Tại sao không chỉ 127.0.1.1:xxxxx
?
Câu trả lời:
Các liên kết tượng trưng không trỏ đến một tệp không có ý nghĩa chung nào cả. Trong trường hợp này, nó có thể là ID tiến trình hoặc một cổng với một số giao thức đặc biệt được nói qua nó hoặc một mã định danh khác. Tất cả phụ thuộc vào chương trình làm ra nó.
Phần mềm tạo ra các liên kết này chỉ đơn giản là lợi dụng sự thật rằng 1) mục tiêu của liên kết tượng trưng có thể không tồn tại hoặc thậm chí là vô nghĩa; 2) tạo một liên kết tượng trưng là một hoạt động nguyên tử hoàn toàn đơn lẻ (như đang đọc mục tiêu của nó), không giống như tạo một tệp thông thường, thực hiện ít nhất 3 lệnh gọi hệ thống riêng biệt.
Do đó, việc tạo liên kết tượng trưng có thể bị lạm dụng như một cách khóa (đảm bảo một thể hiện duy nhất của chương trình) ngay cả khi các cơ chế khác có thể không đáng tin cậy. Chương trình không cần symlink để thực sự phân giải thành một tệp thực: nó chỉ quan tâm đến việc tạo liên kết thành công hay không, hoặc nó có bị lỗi do nó đã tồn tại hay không.
fopen
, fwrite
và fclose
?
open
(hoặc có thể creat
trong phần mềm cũ) write
, và close
, không phải là phiên bản f * mà stdio cung cấp. Nhưng, vâng, bạn cần phải làm ít nhất open
và write
tạo tệp và đặt một cái gì đó có ý nghĩa vào nó. Bây giờ nếu bạn muốn một số mã "cố gắng tạo nó, nếu thành công, hãy đưa một số thông tin vào nó, nếu không, hãy đọc một số thông tin từ nó", quy trình thứ hai có thể thử read
trước khi quy trình đầu tiên có cơ hội write
. symlink
tránh điều đó; hoặc thành công và tạo liên kết, hoặc thất bại và chắc chắn readlink
có thông tin cho bạn.
Theo như tôi biết thì "+" có nghĩa là số sau IP ("xxxxx") đề cập đến "ID tiến trình" (không phải là cổng thường sử dụng ký hiệu [địa chỉ IP]: [portnumber]).
Có thể là "ký hiệu" này (không chắc chắn tôi sẽ gọi nó là "ký hiệu" vì tôi không biết bất kỳ tài liệu "chính thức" nào) đề cập đến một cái gì đó khác nếu được sử dụng bởi một ứng dụng cụ thể - nhưng sau đó, luôn luôn là khả năng không chỉ với symlink. Các trường hợp duy nhất tôi biết (và có thể tìm thấy với một tìm kiếm không quá rộng), "+ XXXX" luôn được đề cập đến ID tiến trình.
/proc
hoặc /dev
. Bạn có thể giải thích symlink này được sử dụng để làm gì không?