about summary refs log tree commit diff
path: root/src/libstd
diff options
context:
space:
mode:
authorleo60228 <iakornfeld@gmail.com>2019-11-21 13:34:31 -0500
committerleo60228 <iakornfeld@gmail.com>2019-11-22 12:27:07 -0500
commit55fe6d8d5875f1378747ea1681deac64536ef9dc (patch)
tree7b1ebd3d8f9291ad7cc03df999f33ef2fa408e56 /src/libstd
parente282b2227f4dac70bf805c59fc4c90e5a4e2c0ef (diff)
downloadrust-55fe6d8d5875f1378747ea1681deac64536ef9dc.tar.gz
rust-55fe6d8d5875f1378747ea1681deac64536ef9dc.zip
Add documentation to `std::env::args[_os]`
Diffstat (limited to 'src/libstd')
-rw-r--r--src/libstd/env.rs10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/libstd/env.rs b/src/libstd/env.rs
index b8989369269..651010d1366 100644
--- a/src/libstd/env.rs
+++ b/src/libstd/env.rs
@@ -702,6 +702,11 @@ pub struct ArgsOs { inner: sys::args::Args }
 /// (such as `*` and `?`). On Windows this is not done, and such arguments are
 /// passed as-is.
 ///
+/// On glibc Linux, arguments are retrieved by placing a function in .init_array.
+/// glibc passes argc, argv, and envp to functions in .init_array, as a non-standard extension.
+/// This allows `std::env::args` to work even in a `cdylib` or `staticlib`, as it does on macOS
+/// and Windows.
+///
 /// # Panics
 ///
 /// The returned iterator will panic during iteration if any argument to the
@@ -732,6 +737,11 @@ pub fn args() -> Args {
 /// set to arbitrary text, and it may not even exist, so this property should
 /// not be relied upon for security purposes.
 ///
+/// On glibc Linux, arguments are retrieved by placing a function in .init_array.
+/// glibc passes argc, argv, and envp to functions in .init_array, as a non-standard extension.
+/// This allows `std::env::args` to work even in a `cdylib` or `staticlib`, as it does on macOS
+/// and Windows.
+///
 /// # Examples
 ///
 /// ```