mô tả tập tin và / dev / fd


7

Là các mô tả tập tin duy nhất trong một quá trình, hoặc trên toàn bộ hệ thống. Bởi vì mọi tệp dường như sử dụng cùng một mô tả cho stdin và stdout. Có điều gì đặc biệt với những thứ này? Làm thế nào để stdin và stdout hoạt động? Tôi nhận ra dev/fd, là một liên kết đến proc/self/fd, nhưng làm thế nào để tất cả chúng có cùng một số?

Chỉnh sửa: Ngay cả sau khi xem xét các quy trình khác, hầu hết các mô tả tệp đều có cùng số.


1
Xem thêm unix.stackexchange.com/questions/24145/ và các câu hỏi khác được gắn thẻ mô tả tệp .
Gilles 'SO- ngừng trở nên xấu xa'

Câu trả lời:


7

Một số điều có thể gây nhầm lẫn ở đây.

Filedescriptors được đính kèm vào một tập tin (theo nghĩa chung) và cụ thể cho một quy trình nhất định. Bản thân các bộ lọc được gọi thông qua id số theo quy trình liên kết của chúng, nhưng một bộ mô tả tệp có thể có một số id. Ví dụ: id 1 và 2 được gọi là đầu ra tiêu chuẩn và lỗi tiêu chuẩn thường đề cập đến cùng một bộ mô tả tệp.

Các liên kết tượng trưng /proc/pid/fd/xchỉ cung cấp một gợi ý cho những gì x filedescriptor của quá trình pid được liên kết đến. Nếu đó là một tệp thông thường, symlink sẽ đưa ra đường dẫn của nó. Nhưng nếu filedescriptor là một ổ cắm inet, thì symlink sẽ bị hỏng. Trong trường hợp một tệp thông thường (hoặc một cái gì đó có đường dẫn như tty), bạn có thể mở nó, nhưng bạn sẽ có được một bộ lọc dữ liệu khác cho cùng một đối tượng.

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.