Struct pwd::Passwd [−][src]
pub struct Passwd { pub name: String, pub passwd: Option<String>, pub uid: u32, pub gid: u32, pub gecos: Option<String>, pub dir: String, pub shell: String, }
Expand description
The main struct for the library, a safe version
of the POSIX struct passwd
There are 2 ways to construct a Passwd
instance (other
than assigning fields by hand). You can look up a user account
by username with Passwd::from_name(String)
, or by uid with
Passwd::from_uid(u32)
.
There is a shortcut function, Passwd::current_user()
, which is just
short for Passwd::from_uid(unsafe { libc::getuid() } as u32)
.
Fields
name: String
passwd: Option<String>
uid: u32
gid: u32
gecos: Option<String>
dir: String
shell: String
Implementations
Looks up the username and returns a Passwd with the user’s values, if the user is found
This is Result<Option<>>
because the operation to convert a rust String to a cstring could fail
Example
use pwd::Passwd; let pwd = Passwd::from_name("bob")?; if let Some(passwd) = pwd { println!("uid is {}", passwd.uid); }
Looks up the uid and returns a Passwd with the user’s values, if the user is found
Example
use libc::getuid; use pwd::Passwd; let uid = unsafe { getuid() }; let pwd = Passwd::from_uid(uid as u32); if let Some(passwd) = pwd { println!("username is {}", passwd.name); }
Shortcut for Passwd::from_uid(libc::getuid() as u32)
, so see the docs for that constructor
Example
use pwd::Passwd; let pwd = Passwd::current_user(); if let Some(passwd) = pwd { println!("username is {}", passwd.name); }
Trait Implementations
Auto Trait Implementations
impl RefUnwindSafe for Passwd
impl UnwindSafe for Passwd
Blanket Implementations
Mutably borrows from an owned value. Read more