1.\" $OpenBSD: chdir.2,v 1.6 2000/10/18 05:12:08 aaron Exp $ 2.\" $NetBSD: chdir.2,v 1.7 1995/02/27 12:32:00 cgd Exp $ 3.\" 4.\" Copyright (c) 1980, 1991, 1993 5.\" The Regents of the University of California. All rights reserved. 6.\" 7.\" Redistribution and use in source and binary forms, with or without 8.\" modification, are permitted provided that the following conditions 9.\" are met: 10.\" 1. Redistributions of source code must retain the above copyright 11.\" notice, this list of conditions and the following disclaimer. 12.\" 2. Redistributions in binary form must reproduce the above copyright 13.\" notice, this list of conditions and the following disclaimer in the 14.\" documentation and/or other materials provided with the distribution. 15.\" 3. All advertising materials mentioning features or use of this software 16.\" must display the following acknowledgement: 17.\" This product includes software developed by the University of 18.\" California, Berkeley and its contributors. 19.\" 4. Neither the name of the University nor the names of its contributors 20.\" may be used to endorse or promote products derived from this software 21.\" without specific prior written permission. 22.\" 23.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 24.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 25.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 26.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 27.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 28.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 29.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 30.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 31.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 32.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 33.\" SUCH DAMAGE. 34.\" 35.\" @(#)chdir.2 8.2 (Berkeley) 12/11/93 36.\" 37.Dd December 11, 1993 38.Dt CHDIR 2 39.Os 40.Sh NAME 41.Nm chdir , 42.Nm fchdir 43.Nd change current working directory 44.Sh SYNOPSIS 45.Fd #include <unistd.h> 46.Ft int 47.Fn chdir "const char *path" 48.Ft int 49.Fn fchdir "int fd" 50.Sh DESCRIPTION 51The 52.Fa path 53argument points to the pathname of a directory. 54The 55.Fn chdir 56function causes the named directory to become the current working directory, 57that is, the starting point for path searches of pathnames not beginning with 58a slash 59.Pq Ql / . 60.Pp 61The 62.Fn fchdir 63function causes the directory referenced by 64.Fa fd 65to become the current working directory, 66the starting point for path searches of pathnames not beginning with 67a slash 68.Pq Ql / . 69.Pp 70In order for a directory to become the current directory, 71a process must have execute (search) access to the directory. 72.Sh RETURN VALUES 73Upon successful completion, a value of 0 is returned. 74Otherwise, a value of \-1 is returned and 75.Va errno 76is set to indicate the error. 77.Sh ERRORS 78.Fn chdir 79will fail and the current working directory will be unchanged if 80one or more of the following are true: 81.Bl -tag -width Er 82.It Bq Er ENOTDIR 83A component of the path prefix is not a directory. 84.It Bq Er ENAMETOOLONG 85A component of a pathname exceeded 86.Dv {NAME_MAX} 87characters, or an entire path name exceeded 88.Dv {PATH_MAX} 89characters. 90.It Bq Er ENOENT 91The named directory does not exist. 92.It Bq Er ELOOP 93Too many symbolic links were encountered in translating the pathname. 94.It Bq Er EACCES 95Search permission is denied for any component of the pathname. 96.It Bq Er EFAULT 97.Fa path 98points outside the process's allocated address space. 99.It Bq Er EIO 100An I/O error occurred while reading from or writing to the file system. 101.El 102.Pp 103.Fn fchdir 104will fail and the current working directory will be unchanged if 105one or more of the following are true: 106.Bl -tag -width Er 107.It Bq Er EACCES 108Search permission is denied for the directory referenced by the 109file descriptor. 110.It Bq Er ENOTDIR 111The file descriptor does not reference a directory. 112.It Bq Er EBADF 113The argument 114.Fa fd 115is not a valid file descriptor. 116.El 117.Sh SEE ALSO 118.Xr chroot 2 119.Sh STANDARDS 120The 121.Fn chdir 122is expected to conform to 123.St -p1003.1-88 . 124.Sh HISTORY 125The 126.Fn fchdir 127function call appeared in 128.Bx 4.2 . 129