Bộ mô tả tập tin 3 được gán theo mặc định là gì?


19
$ ls -og /proc/self /proc/self/fd
lrwxrwxrwx 1 64 Jun 18 11:12 /proc/self -> 32157

/proc/self/fd:
total 0
lrwx------ 1 64 Jun 22  2012 0 -> /dev/tty1
lrwx------ 1 64 Jun 22  2012 1 -> /dev/tty1
lrwx------ 1 64 Jun 22  2012 2 -> /dev/tty1
lr-x------ 1 64 Jun 22  2012 3 -> /proc/32157/fd

Bộ mô tả tập tin 3 được gán theo mặc định là gì?

Câu trả lời:


34

Không có gì: có ba mô tả tệp tiêu chuẩn, STDIN, STDOUT và STDERR. Chúng được gán cho 0, 1 và 2 tương ứng.

Những gì bạn đang thấy có một tạo tác của cách ls(1)hoạt động: để đọc nội dung của /proc/self/fdthư mục và hiển thị nó, nó cần phải mở thư mục đó.

Điều đó có nghĩa là nó có một tệp xử lý, thường là cái đầu tiên có sẵn ... do đó, 3.

Nếu bạn định chạy, hãy nói, cat trên một bàn điều khiển riêng và kiểm tra /proc/${pid}/fdnó, bạn sẽ thấy rằng chỉ có ba người đầu tiên được chỉ định.


Ah, giải thích kết quả, trong đó có thực tế là 3điểm đến /proc/32157/fdlà tốt. (Tại sao tôi lại nhớ điều đó?) Cảm ơn bạn!
musiphil
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.