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ạo tuần tự k con, mỗi con wait ngay

    Tạo tuần tự k con, mỗi con được wait ngay

    Để đảm bảo thứ tự in xác định, cha tạo lần lượt từng con và wait() ngay sau mỗi con trước khi tạo con tiếp theo:

    for (int i = 1; i <= k; i++) {
        pid_t p = fork();
        if (p == 0) { printf("%d\n", i); fflush(stdout); exit(0); }
        wait(NULL);   // cha cho con i xong moi tao con i+1
    }
    

    Vì cha wait() ngay, con i luôn in xong trước khi con i+1 được tạo → các dòng in ra theo đúng thứ tự 1, 2, ..., k.

    Cho k, in các số từ 1 đến k, mỗi số một dòng (theo đúng thứ tự).

    Ví dụ I/O: k = 3 → in 1, 2, 3 trên ba dòng.

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

      Một số nguyên k.

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

      0 <= k <= 1000

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

      k dòng: các số 1, 2, ..., k theo thứ tự (con thứ i in i). Nếu k = 0 thì không in gì.

    Ví dụ:

    Đầu vào:

    3
    

    Đầu ra:

    1
    2
    3

    Giải thích:

    Cha tạo con 1, wait cho con 1 in '1' xong; rồi con 2 in '2'; ... đến con 3. Output tuần tự: 1, 2, 3.

    Đang tải editor...