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] Kích thước file sau ghi qua lseek

    Trên UNIX, lseek có thể di chuyển con trỏ vượt quá cuối file. Nếu sau đó ta write() w byte tại vị trí pos, file sẽ mở rộng: vùng từ kích thước cũ tới pos trở thành lỗ hổng (hole, đọc ra toàn byte 0), và kích thước mới là max(size_cu, pos + w).

    Cho kích thước hiện tại size, vị trí pos (sau lseek), và số byte ghi w, in kích thước file mới.

    Ví dụ I/O:

    Input:  100 500 10
    Output: 510
    

    (ghi 10 byte tại vị trí 500 → file dài tới 510, có lỗ hổng từ 100..500).

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

      Một dòng gồm ba số nguyên size pos w.

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

      0 ≤ size, pos ≤ 10^15; 0 ≤ w ≤ 10^9.

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

      Một số nguyên: kích thước file mới = max(size, pos + w).

    Ví dụ:

    Đầu vào:

    100 500 10
    

    Đầu ra:

    510

    Giải thích:

    Ghi 10 byte tại vị trí 500: file mở rộng tới 510, tạo lỗ hổng 100..500.

    Đang tải editor...