Các trang người đàn ông của mktime không đề cập đến chủ đề an toàn của mktime, nhưng nó đã đề cập này mà làm cho nó trông giống như chủ đề không an toàn:Chuẩn C mktime thread có an toàn trên Linux không?
Calling mktime() cũng đặt biến tzname bên ngoài với thông tin về múi giờ hiện tại.
Tôi biết trên Linux mktime gọi tzset thiết tzname, mà là một char * []:
extern char * tzname [2];
và tzset sẽ đọc biến môi trường TZ và tệp/etc/localtime. Vì vậy, trừ khi mktime sử dụng một mutex để bảo vệ tất cả các hoạt động này, tôi không thể thấy làm thế nào nó có thể được thread an toàn.
có thể trùng lặp của [chức năng thời gian C nhiều chủ đề] (http://stackoverflow.com/questions/18348383/c-time-function-multiple-thread) –
@ShafikYaghmour Câu hỏi trước và câu trả lời của nó tập trung vào 'asctime' , 'ctime',' gmtime' và 'localtime' trả về con trỏ cho dữ liệu tĩnh và do đó thiết kế không an toàn theo luồng. Câu hỏi này đặc biệt về 'mktime' có giao diện không phải là luồng không an toàn, nhưng tác dụng phụ được bổ sung bởi POSIX có thể là. Vì vậy, đây không phải là một bản sao của câu hỏi trước đó. – user4815162342
đúng vậy, tôi nghĩ rằng hai dòng đầu tiên được thêm vào là một chút sai lầm, câu hỏi trước đó không trả lời bất cứ điều gì liên quan đến mktime. – swang