Đó là mã của tôi.Làm thế nào để fork() n con xử lý một cách chính xác trong C?
#include <stdio.h>
#include <stdlib.h>
int main (int argc, char *argv[])
{
int i, pid;
for(i = 0; i < atoi(argv[1]); i++) {
pid = fork();
if(pid < 0) {
printf("Error");
exit(1);
} else if (pid == 0) {
printf("Child (%d): %d\n", i + 1, getpid());
exit(0);
} else {
wait(NULL);
}
}
}
Kết quả là như vậy.
Child (1): 5676
Child (2): 4624
Child (3): 4800
Child (4): 5596
Child (5): 5580
Tuy nhiên đó không phải là đầu ra mong đợi trong bài tập ở nhà của tôi. Nó sẽ là như thế. Có gì sai với mã? Ai đó có thể giúp tôi?
Child (2): 4625
Child (1): 4624
Child (3): 4626
Child (4): 4627
Child (5): 4628
Cảm ơn sự giúp đỡ của bạn. Bây giờ tôi sẽ thử nó.
P.S. Xin lỗi tiếng Anh của tôi là xấu. Tôi hy vọng bạn có thể hiểu những gì tôi đã nói.
Cảm ơn bạn đã đề xuất. –
Vâng, nó thực sự là phụ thuộc os. Tôi đã kiểm tra chương trình của mình trong máy chủ Linux của trường. Tôi nhận được kết quả mong đợi. Cảm ơn nhiều. –