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] dup2() ép fd đích

    dup2() ép fd đích

    dup2(oldfd, newfd) làm cho newfd trở thành bản sao của oldfd. Khác dup, ta chỉ định newfd:

    • Nếu newfd đang mở, nó được đóng tự động trước khi trở thành bản sao.
    • Nếu oldfd == newfd và oldfd hợp lệ, không làm gì, trả về newfd.

    Sau lệnh, hãy in tập fd đang mở (tăng dần) và đích mà newfd trỏ tới (chính là đích của oldfd).

    Ví dụ I/O: mở 0 1 2 với đích t0 t1 t2, dup2(2, 1) → fd 1 nay trỏ t2.

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

      Dòng 1: các fd đang mở. Dòng 2: đích tương ứng từng fd (cùng số phần tử). Dòng 3: oldfd newfd.

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

      0 ≤ fd ≤ 1024.

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

      Dòng 1 in tập fd mở tăng dần. Dòng 2 in đích của newfd sau lệnh.

    Ví dụ:

    Đầu vào:

    0 1 2
    t0 t1 t2
    2 1
    

    Đầu ra:

    0 1 2
    t2

    Giải thích:

    dup2(2,1): fd 1 bị đóng rồi thành bản sao của fd 2 → trỏ t2; tập fd không đổi.

    Đang tải editor...