about summary refs log tree commit diff
diff options
context:
space:
mode:
authorr00ster <r00ster91@protonmail.com>2021-04-25 14:45:48 +0200
committerGitHub <noreply@github.com>2021-04-25 14:45:48 +0200
commit22ec96135d1928b5fa9ea5ee565ad8f1efd76152 (patch)
tree3212b87c80893f89db7da52d9a1b45fefb2cf366
parent13a2615883aa28433383a723a764ca9acb43fd48 (diff)
downloadrust-22ec96135d1928b5fa9ea5ee565ad8f1efd76152.tar.gz
rust-22ec96135d1928b5fa9ea5ee565ad8f1efd76152.zip
Unify the docs of std::env::{args_os, args} more
-rw-r--r--library/std/src/env.rs24
1 files changed, 16 insertions, 8 deletions
diff --git a/library/std/src/env.rs b/library/std/src/env.rs
index 5fa092af1da..513d9caa157 100644
--- a/library/std/src/env.rs
+++ b/library/std/src/env.rs
@@ -710,14 +710,14 @@ pub struct ArgsOs {
 /// passed as-is.
 ///
 /// On glibc Linux systems, 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
+/// 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
-/// process is not valid unicode. If this is not desired,
+/// process is not valid Unicode. If this is not desired,
 /// use the [`args_os`] function instead.
 ///
 /// # Examples
@@ -735,17 +735,25 @@ pub fn args() -> Args {
     Args { inner: args_os() }
 }
 
-/// Returns the arguments which this program was started with (normally passed
+/// Returns the arguments that this program was started with (normally passed
 /// via the command line).
 ///
 /// The first element is traditionally the path of the executable, but it can be
-/// set to arbitrary text, and it may not even exist, so this property should
+/// set to arbitrary text, and may not even exist. This means this property should
 /// not be relied upon for security purposes.
 ///
-/// On glibc Linux systems, 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.
+/// On Unix systems the shell usually expands unquoted arguments with glob patterns
+/// (such as `*` and `?`). On Windows this is not done, and such arguments are
+/// passed as-is.
+///
+/// On glibc Linux systems, 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_os` to work even in a `cdylib` or `staticlib`, as it
+/// does on macOS and Windows.
+///
+/// Note that the returned iterator will not panic during iteration if any argument to the
+/// process is not valid Unicode. For more safety,
+/// use the [`args`] function instead.
 ///
 /// # Examples
 ///