d: Merge upstream dmd, druntime 4ca4140e58, phobos 454dff14d.
[official-gcc.git] / libphobos / libdruntime / core / stdc / time.d
blobd7a57655fabe63dd41702b91ecc57b2497dd87c3
1 /**
2 * D header file for C99.
4 * $(C_HEADER_DESCRIPTION pubs.opengroup.org/onlinepubs/009695399/basedefs/_time.h.html, _time.h)
6 * Copyright: Copyright Sean Kelly 2005 - 2009.
7 * License: Distributed under the
8 * $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost Software License 1.0).
9 * (See accompanying file LICENSE)
10 * Authors: Sean Kelly,
11 * Alex Rønne Petersen
12 * Source: $(DRUNTIMESRC core/stdc/_time.d)
13 * Standards: ISO/IEC 9899:1999 (E)
16 module core.stdc.time;
18 version (Posix)
19 public import core.sys.posix.stdc.time;
20 else version (Windows)
21 public import core.sys.windows.stdc.time;
22 else
23 static assert(0, "unsupported system");
25 import core.stdc.config;
27 extern (C):
28 @trusted: // There are only a few functions here that use unsafe C strings.
29 nothrow:
30 @nogc:
32 ///
33 pragma(mangle, muslRedirTime64Mangle!("difftime", "__difftime64"))
34 pure double difftime(time_t time1, time_t time0); // MT-Safe
35 ///
36 pragma(mangle, muslRedirTime64Mangle!("mktime", "__mktime64"))
37 @system time_t mktime(scope tm* timeptr); // @system: MT-Safe env locale
38 ///
39 pragma(mangle, muslRedirTime64Mangle!("time", "__time64"))
40 time_t time(scope time_t* timer);
42 ///
43 @system char* asctime(const scope tm* timeptr); // @system: MT-Unsafe race:asctime locale
44 ///
45 pragma(mangle, muslRedirTime64Mangle!("ctime", "__ctime64"))
46 @system char* ctime(const scope time_t* timer); // @system: MT-Unsafe race:tmbuf race:asctime env locale
47 ///
48 pragma(mangle, muslRedirTime64Mangle!("gmtime", "__gmtime64"))
49 @system tm* gmtime(const scope time_t* timer); // @system: MT-Unsafe race:tmbuf env locale
50 ///
51 pragma(mangle, muslRedirTime64Mangle!("localtime", "__localtime64"))
52 @system tm* localtime(const scope time_t* timer); // @system: MT-Unsafe race:tmbuf env locale
53 ///
54 @system size_t strftime(scope char* s, size_t maxsize, const scope char* format, const scope tm* timeptr); // @system: MT-Safe env locale