Các lượt nộp
    Danh sách bài
    Trang chủ
    Báo lỗi

    solution

    Đề bài: [Hệ điều hành Unix] Đếm fd qua dup/dup2/open/close

    Đếm fd qua dup/dup2/open/close

    Mô phỏng đầy đủ:

    • open — fd trống nhỏ nhất.
    • dup <fd> — sao chép vào fd trống nhỏ nhất (lỗi bỏ qua nếu fd không mở).
    • dup2 <a> <b> — mở fd b (kế cả nếu trước đó chưa mở) làm bản sao của a; nếu a không mở thì bỏ qua.
    • close <fd> — đóng.

    Ban đầu 0 1 2. In số fd đang mở ở cuối.

    Ví dụ I/O: open, dup2 3 9 → mở 0,1,2,3,9 = 5 fd.

    • Định dạng đầu vào:

      Dòng 1: số lệnh n. n dòng lệnh.

    • Ràng buộc đầu vào:

      0 ≤ n ≤ 100.

    • Định dạng đầu ra:

      In số fd đang mở cuối cùng.

    Ví dụ:

    Đầu vào:

    2
    open
    dup2 3 9
    

    Đầu ra:

    5

    Giải thích:

    open cấp fd 3; dup2 3 9 mở thêm fd 9 (bản sao của 3) → 0,1,2,3,9 = 5 fd.

    Đang tải editor...