2010-02-17 37 views
11

Trong trường hợp Linux, đối với các hàm thời gian, chúng ta có một phiên bản _r Ex: localtime có localtime_r, nhưng trong Windows tôi không thể tìm thấy một số chức năng như vậy. Các chức năng thời gian của Windows vốn có an toàn không?Chức năng thời gian của thread an toàn MSVC?

Trả lời

12

Với Microsoft Visual Studio bạn có một sự lựa chọn của c-runtimes sử dụng: thường họ là:

  • tĩnh thư viện luồng duy nhất (libc)
  • thư viện đa luồng tĩnh (libcmt)
  • động thư viện đa luồng (msvcrt)

Thư viện đa luồng là chuỗi an toàn. Thư viện đơn luồng được nhìn thấy lần cuối trong MSVC 2005 và đã bị loại bỏ khỏi MSVC 2008.

Thời gian chạy dll (msvcrt.dll) chỉ phải là luồng an toàn - Do thực hiện trong dll và do đó được chia sẻ giữa nhiều các mô-đun trong quá trình này, tất cả đều có thể sử dụng các chuỗi công việc, Nó phải là luồng an toàn vì sẽ không có cách nào lành mạnh để thiết kế một ứng dụng để sử dụng nó theo cách khác.

-2

Tôi nghĩ rằng chúng không phải là ThreadSafe và không có phiên bản _r. Nhưng sửa tôi nếu tôi sai.

Có lẽ sẽ tốt hơn nếu bạn sử dụng các chức năng của Windows riêng, như

GetSystemTime, GetSystemTimeAsFileTime hoặc GetLocalTime

+0

* sửa tôi nếu tôi sai * - bạn đã sai. xem câu trả lời khác – vaxquis

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