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] Phân loại kết thúc tiến trình con

    Phân loại cách tiến trình con kết thúc

    Cho giá trị status mà wait() trả về, hãy phân loại cách tiến trình con kết thúc theo quy ước Linux. Đặt s = status & 0x7F:

    • Nếu s == 0: con kết thúc bình thường. In EXIT x với x = WEXITSTATUS = (status >> 8) & 0xFF.
    • Nếu s == 0x7F (127): con bị dừng (stopped). In STOPPED y với y = (status >> 8) & 0xFF.
    • Ngược lại: con bị tín hiệu kết thúc. In SIGNAL s.

    Mỗi trường hợp in trên một dòng theo đúng định dạng trên.

    Ví dụ I/O: status = 256 → s = 0 → in EXIT 1.

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

      Một số nguyên status.

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

      0 <= status <= 65535

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

      Một dòng: EXIT x, SIGNAL s, hoặc STOPPED y tuỳ trường hợp.

    Ví dụ:

    Đầu vào:

    256
    

    Đầu ra:

    EXIT 1

    Giải thích:

    status = 256: s = status & 0x7F = 0 nên con kết thúc bình thường; WEXITSTATUS = (256>>8)&0xFF = 1, in EXIT 1.

    Đang tải editor...