2009-11-10 34 views

Trả lời

17

Lý do không sử dụng heap là tuân thủ các tiêu chuẩn (POSIX) và các hệ thống khác. Giao diện chỉ là không như vậy mà bạn có nghĩa vụ phải giải phóng bộ đệm trả về. Nó giả định lưu trữ tĩnh ..

Nhưng bằng cách tuyên bố nó là luồng cục bộ (với __thread), hai luồng không xung đột với nhau nếu chúng xảy ra cho cả hai đang gọi hàm. Đây là giải pháp của glibc cho sự hỏng hóc của giao diện.

Đúng là đây không phải là tái nhập hoặc phù hợp với tinh thần của cụm từ đó. Nếu bạn có một hàm đệ quy gọi nó, bạn không thể dựa vào bộ đệm giống nhau giữa các cuộc gọi. Nhưng nó có thể được sử dụng bởi nhiều chủ đề, thường là đủ tốt.

CHỈNH SỬA: Nhân tiện, tôi đã nhớ, có phiên bản mới hơn của chức năng này sử dụng bộ đệm do người gọi cung cấp. Xem inet_ntop().

+0

@asveikau: Xin lỗi vì lỗi in. – Jichao

+0

@asveikau: Tóm lại, tính tương thích của nó? – Jichao

+0

@jcyang Vâng, đó là khả năng tương thích. – asveikau

Các vấn đề liên quan