Skip to content

Commit f377dfe

Browse files
committed
Adding examples and possible failures for getcwd.
For both window and unix platforms.
1 parent 6509092 commit f377dfe

File tree

1 file changed

+36
-2
lines changed

1 file changed

+36
-2
lines changed

src/libstd/os.rs

Lines changed: 36 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,24 @@ pub fn close(fd: int) -> int {
6666
pub static TMPBUF_SZ : uint = 1000u;
6767
static BUF_BYTES : uint = 2048u;
6868

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+
/// ```
7087
#[cfg(unix)]
7188
pub fn getcwd() -> Path {
7289
use c_str::CString;
@@ -80,7 +97,24 @@ pub fn getcwd() -> Path {
8097
}
8198
}
8299

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+
/// ```
84118
#[cfg(windows)]
85119
pub fn getcwd() -> Path {
86120
use libc::DWORD;

0 commit comments

Comments
 (0)