cuốn sách gpt4 ai đã làm

c - cây ngã ba chương trình C

In lại Tác giả: Vũ trụ không gian Thời gian cập nhật: 2023-11-04 08:05:04 28 4
mua khóa gpt4 Nike

Tôi đang cố gắng tạo TreeMap được phân nhánh nhưng vẫn không thành công. Đây là mã của tôi:

#include 
#include
#include

void procStatus(int cấp) {
printf("L%d: PID[%d] (PPID[%d])\n", cấp độ, getpid(), getppid());
fflush(NULL);
}

void levelFork(int *level) {
nếu (ngã ba() == 0)
(*cấp độ)++;
chờ đợi(NULL);
}

khoảng trống chính () {
mức int = 0;
procStatus(cấp độ);
cấpFork(&level);
procStatus(cấp độ);
}

Tôi muốn tạo hình ảnh sau:

Sơ đồ cây ngã ba

Đây là kết quả đầu ra trông như thế nào:

đầu ra

Bất kỳ trợ giúp sẽ được đánh giá rất cao.

câu trả lời hay nhất

Mã như thế này, bạn nên phân nhánh hai quy trình con cho mỗi quy trình con mới cho đến khi đạt được mức độ sâu mục tiêu. Sau khi phân tách hai quy trình con, quy trình cha phải thoát khỏi hệ thống và chỉ quy trình con mới mới có thể tạo quy trình mới.

Quá trình cha mẹ có thể bị loại bỏ bằng cách xem xét childpid (giá trị trả về của fork)

  #include 
#include
#include
#include
#include

int main(int argc, char *argv[])
{

pid_t trẻ con;
int tôi, n;
if (argc != 2) {
fprintf(stderr, "Cách sử dụng: %sn\n", argv[0]); return 1;
}
n = atoi(argv[1]);
Childpid=-1;
cho (i = 1; tôi <= n; i++){

int b;
cho(b=0;b<2;b++)
{
childpid=fork();
if (childpid <= 0) phá vỡ;

}
if (childpid > 0) phá vỡ;

}
while(wait(NULL) > 0) ; /* đợi tất cả con của bạn */


fprintf(stderr, "i:%d ID tiến trình:%ld ID cha:%ld ID con:%ld\n",i, (long)getpid(), (long)getppid(), (long)childpid);
return 0;
}

Đầu ra của mã là như thế này

└──╼ $./fork.o 2
i:3 ID tiến trình:23913 ID cha:23911 ID con:0
i:3 ID tiến trình:23915 ID cha:23911 ID con:0
i:3 ID tiến trình:23914 ID cha:23912 ID con:0
i:3 ID tiến trình:23916 ID cha:23912 ID con:0
i:2 ID tiến trình:23911 ID cha:23910 ID con:23915
i:2 ID tiến trình:23912 ID cha:23910 ID con:23916
i:1 ID tiến trình:23910 ID cha:23277 ID con:23912

Về chương trình c - fork tree C, chúng tôi tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/43419109/

28 4 0
không gian vũ trụ
Hồ sơ

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá taxi Didi miễn phí
Phiếu giảm giá taxi Didi
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress