summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSteve Lau <stevelauc@outlook.com>2022-10-12 08:28:22 +0800
committerSteve Lau <stevelauc@outlook.com>2022-10-12 08:28:22 +0800
commitbfc406468aa908cb54b962d824221581e11e9a42 (patch)
treee4a98df33c84b4f390afdeb98207b359f72ff00d
parent88b2ed287f27a453d623e91517d7973a586a203f (diff)
downloadrust-libc-bfc406468aa908cb54b962d824221581e11e9a42.tar.gz
some time functions on glibc and musl
-rw-r--r--libc-test/semver/linux-gnu.txt6
-rw-r--r--libc-test/semver/linux-musl.txt5
-rw-r--r--src/unix/linux_like/linux/gnu/mod.rs11
-rw-r--r--src/unix/linux_like/linux/musl/mod.rs10
4 files changed, 30 insertions, 2 deletions
diff --git a/libc-test/semver/linux-gnu.txt b/libc-test/semver/linux-gnu.txt
index 6b43d6202b..a4289ad849 100644
--- a/libc-test/semver/linux-gnu.txt
+++ b/libc-test/semver/linux-gnu.txt
@@ -653,4 +653,8 @@ utmpname
utmpx
utmpxname
euidaccess
-eaccess \ No newline at end of file
+eaccess
+asctime_r
+ctime_r
+strftime
+strptime \ No newline at end of file
diff --git a/libc-test/semver/linux-musl.txt b/libc-test/semver/linux-musl.txt
index 96d04e0d90..c00934af10 100644
--- a/libc-test/semver/linux-musl.txt
+++ b/libc-test/semver/linux-musl.txt
@@ -49,4 +49,7 @@ pwritev64
reallocarray
timex
euidaccess
-eaccess \ No newline at end of file
+eaccess
+asctime_r
+strftime
+strptime \ No newline at end of file
diff --git a/src/unix/linux_like/linux/gnu/mod.rs b/src/unix/linux_like/linux/gnu/mod.rs
index 21e7619db5..3506d922dd 100644
--- a/src/unix/linux_like/linux/gnu/mod.rs
+++ b/src/unix/linux_like/linux/gnu/mod.rs
@@ -1335,6 +1335,17 @@ extern "C" {
pub fn euidaccess(pathname: *const ::c_char, mode: ::c_int) -> ::c_int;
pub fn eaccess(pathname: *const ::c_char, mode: ::c_int) -> ::c_int;
+
+ pub fn asctime_r(tm: *const ::tm, buf: *mut ::c_char) -> *mut ::c_char;
+ pub fn ctime_r(timep: *const time_t, buf: *mut ::c_char) -> *mut ::c_char;
+
+ pub fn strftime(
+ s: *mut ::c_char,
+ max: ::size_t,
+ format: *const ::c_char,
+ tm: *const ::tm,
+ ) -> ::size_t;
+ pub fn strptime(s: *const ::c_char, format: *const ::c_char, tm: *mut ::tm) -> *mut ::c_char;
}
extern "C" {
diff --git a/src/unix/linux_like/linux/musl/mod.rs b/src/unix/linux_like/linux/musl/mod.rs
index 894f377acf..32d3578218 100644
--- a/src/unix/linux_like/linux/musl/mod.rs
+++ b/src/unix/linux_like/linux/musl/mod.rs
@@ -757,6 +757,16 @@ extern "C" {
pub fn euidaccess(pathname: *const ::c_char, mode: ::c_int) -> ::c_int;
pub fn eaccess(pathname: *const ::c_char, mode: ::c_int) -> ::c_int;
+
+ pub fn asctime_r(tm: *const ::tm, buf: *mut ::c_char) -> *mut ::c_char;
+
+ pub fn strftime(
+ s: *mut ::c_char,
+ max: ::size_t,
+ format: *const ::c_char,
+ tm: *const ::tm,
+ ) -> ::size_t;
+ pub fn strptime(s: *const ::c_char, format: *const ::c_char, tm: *mut ::tm) -> *mut ::c_char;
}
cfg_if! {