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] Tính vị trí con trỏ sau lseek

    Hàm lseek(fd, offset, whence) di chuyển con trỏ đọc/ghi của file và trả về vị trí mới (tính từ đầu file). Tham số whence:

    • SEEK_SET (0): vị trí mới = offset
    • SEEK_CUR (1): vị trí mới = vị trí hiện tại + offset
    • SEEK_END (2): vị trí mới = kích thước file + offset

    Cho kích thước file size, vị trí hiện tại cur, một mã whence và offset, hãy in vị trí mới của con trỏ. offset có thể âm.

    Ví dụ I/O:

    Input:  100 10 2 -5
    Output: 95
    

    (SEEK_END: 100 + (-5) = 95).

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

      Một dòng gồm 4 số nguyên size cur whence offset cách nhau bởi dấu cách.

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

      0 ≤ size, cur ≤ 10^9; whence ∈ {0,1,2}; |offset| ≤ 10^9. Kết quả luôn ≥ 0.

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

      Một số nguyên: vị trí mới của con trỏ.

    Ví dụ:

    Đầu vào:

    100 10 2 -5
    

    Đầu ra:

    95

    Giải thích:

    whence=2 là SEEK_END: 100 + (-5) = 95.

    Đang tải editor...