PATH:
opt
/
alt
/
ruby34
/
share
/
ri
/
system
/
Dir
U:RDoc::AnyMethod[iI"fchdir:ETI"Dir::fchdir;TT:publico:RDoc::Markup::Document:@parts[o:RDoc::Markup::Paragraph; [I"<Changes the current working directory to the directory ;TI"3specified by the integer file descriptor +fd+.;To:RDoc::Markup::BlankLine o; ; [I"NWhen passing a file descriptor over a UNIX socket or to a child process, ;TI"2using +fchdir+ instead of +chdir+ avoids the ;TI"m{time-of-check to time-of-use vulnerability}[https://en.wikipedia.org/wiki/Time-of-check_to_time-of-use];T@o; ; [I";With no block, changes to the directory given by +fd+:;T@o:RDoc::Markup::Verbatim; [I""Dir.chdir('/var/spool/mail') ;TI"$Dir.pwd # => "/var/spool/mail" ;TI"dir = Dir.new('/usr') ;TI"fd = dir.fileno ;TI"Dir.fchdir(fd) ;TI"Dir.pwd # => "/usr" ;T:@format0o; ; [I"=With a block, temporarily changes the working directory:;T@o:RDoc::Markup::List: @type:BULLET:@items[ o:RDoc::Markup::ListItem:@label0; [o; ; [I"'Calls the block with the argument.;To;;0; [o; ; [I"$Changes to the given directory.;To;;0; [o; ; [I")Executes the block (yields no args).;To;;0; [o; ; [I"-Restores the previous working directory.;To;;0; [o; ; [I"&Returns the block's return value.;T@o; ; [I" Example:;T@o;; [ I""Dir.chdir('/var/spool/mail') ;TI"$Dir.pwd # => "/var/spool/mail" ;TI"dir = Dir.new('/tmp') ;TI"fd = dir.fileno ;TI"Dir.fchdir(fd) do ;TI" Dir.pwd # => "/tmp" ;TI" end ;TI"$Dir.pwd # => "/var/spool/mail" ;T; 0o; ; [ I"This method uses the ;TI"J{fchdir()}[https://www.man7.org/linux/man-pages/man3/fchdir.3p.html] ;TI"%function defined by POSIX 2008; ;TI"Wthe method is not implemented on non-POSIX platforms (raises NotImplementedError).;T@o; ; [I"=Raises an exception if the file descriptor is not valid.;T@o; ; [ I"IIn a multi-threaded program an error is raised if a thread attempts ;TI"@to open a +chdir+ block while another thread has one open, ;TI"8or a call to +chdir+ without a block occurs inside ;TI"9a block passed to +chdir+ (even in the same thread).;T: @fileI" dir.c;T:0@omit_headings_from_table_of_contents_below0I":Dir.fchdir(fd) -> 0 Dir.fchdir(fd) { ... } -> object ;T0[ I" (p1);T@ZFI"Dir;TcRDoc::NormalClass00
[-] each_child-i.ri
[edit]
[-] cdesc-Dir.ri
[edit]
[-] fchdir-c.ri
[edit]
[-] children-c.ri
[edit]
[-] delete-c.ri
[edit]
[-] mktmpdir-c.ri
[edit]
[-] getwd-c.ri
[edit]
[-] rewind-i.ri
[edit]
[-] new-c.ri
[edit]
[-] mkdir-c.ri
[edit]
[-] unlink-c.ri
[edit]
[-] chroot-c.ri
[edit]
[-] rmdir-c.ri
[edit]
[-] home-c.ri
[edit]
[-] chdir-c.ri
[edit]
[-] seek-i.ri
[edit]
[-] exist%3f-c.ri
[edit]
[-] to_path-i.ri
[edit]
[-] close-i.ri
[edit]
[-] each-i.ri
[edit]
[-] pos-i.ri
[edit]
[-] open-c.ri
[edit]
[-] glob-c.ri
[edit]
[-] path-i.ri
[edit]
[-] chdir-i.ri
[edit]
[-] empty%3f-c.ri
[edit]
[+]
..
[-] pos%3d-i.ri
[edit]
[-] tmpdir-c.ri
[edit]
[-] pwd-c.ri
[edit]
[-] for_fd-c.ri
[edit]
[-] read-i.ri
[edit]
[-] children-i.ri
[edit]
[-] inspect-i.ri
[edit]
[-] each_child-c.ri
[edit]
[-] %5b%5d-c.ri
[edit]
[-] entries-c.ri
[edit]
[-] tell-i.ri
[edit]
[-] fileno-i.ri
[edit]
[-] foreach-c.ri
[edit]