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] Fork với con thoát ngay

    Fork mà con thoát ngay lập tức

    Xét mẫu code phổ biến: cha lặp n lần, mỗi lần fork() một con, con làm việc xong rồi exit ngay, chỉ có cha tiếp tục vòng lặp:

    for (int i = 0; i < n; i++) {
        pid_t p = fork();
        if (p == 0) {
            // con: lam viec roi thoat
            exit(0);
        }
        // chi cha di tiep
    }
    

    Trong mô hình này:

    • Tổng số tiến trình con được tạo ra = n.
    • Số tiến trình còn tồn tại sau vòng lặp (nếu cha không kết thúc) = 1 (chỉ còn cha), vì mọi con đều đã exit.

    Cho n, hãy in hai số trên một dòng cách nhau bởi dấu cách: n và 1.

    Ví dụ I/O: n = 5 → 5 1.

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

      Một số nguyên n.

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

      0 <= n <= 1000000

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

      Hai số nguyên trên một dòng: số con được tạo (n) và số tiến trình còn tồn tại (1).

    Ví dụ:

    Đầu vào:

    5
    

    Đầu ra:

    5 1

    Giải thích:

    Cha tạo 5 con; mỗi con exit ngay nên cuối cùng chỉ còn 1 tiến trình (cha) tồn tại → in "5 1".

    Đang tải editor...