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] Giải mã WEXITSTATUS từ status

    Giải mã exit status với WEXITSTATUS

    Khi tiến trình con kết thúc bình thường bằng exit(code), hàm wait(&status) ghi vào biến status một giá trị mã hoá. Theo quy ước POSIX (Linux), khi con kết thúc bình thường:

    • Bit 0–6 (status & 0x7F) = 0 (không bị tín hiệu kết thúc).
    • Mã thoát nằm ở byte cao: WEXITSTATUS(status) = (status >> 8) & 0xFF.

    WIFEXITED(status) đúng khi (status & 0x7F) == 0.

    Cho giá trị nguyên status (đã được wait trả về cho một con kết thúc bình thường), hãy in ra mã thoát WEXITSTATUS.

    Ví dụ I/O: status = 256 → (256 >> 8) & 0xFF = 1.

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

      Một số nguyên status (giá trị wait trả về).

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

      0 <= status <= 65535

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

      Một số nguyên: WEXITSTATUS(status).

    Ví dụ:

    Đầu vào:

    256
    

    Đầu ra:

    1

    Giải thích:

    status = 256 = 0x0100. WEXITSTATUS lấy byte cao: (256 >> 8) & 0xFF = 1, nghĩa là con đã exit(1).

    Đang tải editor...