@@ -66,7 +66,24 @@ pub fn close(fd: int) -> int {
66
66
pub static TMPBUF_SZ : uint = 1000 u;
67
67
static BUF_BYTES : uint = 2048 u;
68
68
69
- /// Returns the current working directory.
69
+ /// Returns the current working directory as a Path.
70
+ ///
71
+ /// # Failure
72
+ ///
73
+ /// Fails if the current working directory value is invalid:
74
+ /// Possibles cases:
75
+ ///
76
+ /// * Current directory does not exist.
77
+ /// * There are insufficient permissions to access the current directory.
78
+ ///
79
+ /// # Example
80
+ ///
81
+ /// ```rust
82
+ /// // We assume that we are in a valid directory like "/home".
83
+ /// let current_working_directory = std::os::getcwd();
84
+ /// println!("The current directory is {}", current_working_directory.display());
85
+ /// // /home
86
+ /// ```
70
87
#[ cfg( unix) ]
71
88
pub fn getcwd ( ) -> Path {
72
89
use c_str:: CString ;
@@ -80,7 +97,24 @@ pub fn getcwd() -> Path {
80
97
}
81
98
}
82
99
83
- /// Returns the current working directory.
100
+ /// Returns the current working directory as a Path.
101
+ ///
102
+ /// # Failure
103
+ ///
104
+ /// Fails if the current working directory value is invalid.
105
+ /// Possibles cases:
106
+ ///
107
+ /// * Current directory does not exist.
108
+ /// * There are insufficient permissions to access the current directory.
109
+ ///
110
+ /// # Example
111
+ ///
112
+ /// ```rust
113
+ /// // We assume that we are in a valid directory like "C:\\Windows".
114
+ /// let current_working_directory = std::os::getcwd();
115
+ /// println!("The current directory is {}", current_working_directory.display());
116
+ /// // C:\\Windows
117
+ /// ```
84
118
#[ cfg( windows) ]
85
119
pub fn getcwd ( ) -> Path {
86
120
use libc:: DWORD ;
@@ -171,11 +205,20 @@ fn with_env_lock<T>(f: || -> T) -> T {
171
205
}
172
206
}
173
207
174
- /// Returns a vector of (variable, value) pairs for all the environment
175
- /// variables of the current process.
208
+ /// Returns a vector of (variable, value) pairs as a Vec<(String, String)>,
209
+ /// for all the environment variables of the current process.
176
210
///
177
211
/// Invalid UTF-8 bytes are replaced with \uFFFD. See `str::from_utf8_lossy()`
178
212
/// for details.
213
+ ///
214
+ /// # Example
215
+ ///
216
+ /// ```rust
217
+ /// // We will iterate through the references to the element returned by std::os::env();
218
+ /// for &(ref key, ref value) in std::os::env().iter() {
219
+ /// println!("'{}': '{}'", key, value );
220
+ /// }
221
+ /// ```
179
222
pub fn env ( ) -> Vec < ( String , String ) > {
180
223
env_as_bytes ( ) . move_iter ( ) . map ( |( k, v) | {
181
224
let k = str:: from_utf8_lossy ( k. as_slice ( ) ) . to_string ( ) ;
@@ -276,6 +319,16 @@ pub fn env_as_bytes() -> Vec<(Vec<u8>,Vec<u8>)> {
276
319
/// # Failure
277
320
///
278
321
/// Fails if `n` has any interior NULs.
322
+ ///
323
+ /// # Example
324
+ ///
325
+ /// ```rust
326
+ /// let key = "HOME";
327
+ /// match std::os::getenv(key) {
328
+ /// Some(val) => println!("{}: {}", key, val),
329
+ /// None => println!("{} is not defined in the environnement.", key)
330
+ /// }
331
+ /// ```
279
332
pub fn getenv ( n : & str ) -> Option < String > {
280
333
getenv_as_bytes ( n) . map ( |v| str:: from_utf8_lossy ( v. as_slice ( ) ) . to_string ( ) )
281
334
}
0 commit comments