Tôi có một câu hỏi về kích thước ngăn xếp của một quá trình trên Linux. Kích thước ngăn xếp này có được xác định tại thời gian liên kết và được mã hóa trong tệp ELF không?Kích thước ngăn xếp của quá trình trên linux liên quan đến pthread, fork và exec
Tôi đã viết một chương trình in kích thước ngăn xếp của nó theo pthread_attr_getstacksize(&attr, &stacksize);
. Và nếu tôi chạy chương trình này trực tiếp từ một trình bao, nó cho một giá trị khoảng 10MB. Nhưng khi tôi exec
nó từ một sợi thuộc về một chương trình đa luồng, nó cho một giá trị khoảng 2MB.
Vì vậy, tôi muốn biết những yếu tố nào ảnh hưởng đến kích thước ngăn xếp của quy trình được fork and exec
-được lấy từ một số quy trình gốc. Và có thể thiết lập kích thước ngăn xếp của một quá trình trong cha mẹ của nó tại thời gian chạy trước khi fork and exec
đứa trẻ?
Cảm ơn bạn trước.
Ngoài ra, linux tự động phát triển ngăn xếp khi cần - nhưng bạn có giới hạn về giới hạn này, cũng như giới hạn về không gian địa chỉ có sẵn trong các khu vực có thể phát triển. – nos
nos, chỉ dành cho chủ đề chính, phải không? – osgx