source: rtems/cpukit/libcsupport/src/chroot.c @ 56f20bac

4.104.114.84.95
Last change on this file since 56f20bac was 56f20bac, checked in by Joel Sherrill <joel.sherrill@…>, on 01/26/01 at 14:50:54

2001-01-26 Joel Sherrill <joel@…>

  • libc/chroot.c: Fixed naming problems. Names were changed when the code this depends on was merged.
  • Property mode set to 100644
File size: 1.3 KB
Line 
1/* 
2 *  chroot() -  Change Root Directory
3 *  Author: fernando.ruiz@ctv.es
4 *
5 *  COPYRIGHT (c) 1989-1999.
6 *  On-Line Applications Research Corporation (OAR).
7 *
8 *  The license and distribution terms for this file may be
9 *  found in the file LICENSE in this distribution or at
10 *  http://www.OARcorp.com/rtems/license.html.
11 *
12 *  $Id$
13 */
14
15#if HAVE_CONFIG_H
16#include "config.h"
17#endif
18
19#include <rtems.h>
20
21#include <unistd.h>
22#include <errno.h>
23
24#include <rtems/libio_.h>
25
26int chroot(
27  const char *pathname
28)
29{
30  int                               result;
31  rtems_filesystem_location_info_t  loc;
32 
33  if (rtems_current_user_env == &rtems_global_user_env)
34    set_errno_and_return_minus_one( ENOTSUP );
35
36  loc = rtems_filesystem_root;     /* save the value */
37
38  /* if has been already changed */
39  rtems_filesystem_root = rtems_global_user_env.root_directory;
40
41  result = chdir(pathname);
42  if (result) {
43    rtems_filesystem_root = loc; /* restore the value */
44    set_errno_and_return_minus_one( errno );
45  };
46  rtems_filesystem_root = rtems_filesystem_current;
47
48  result = chdir("/");
49  if (result) {
50    rtems_filesystem_root = loc; /* restore the value */
51    set_errno_and_return_minus_one( errno );
52  };
53
54  /*XXX : Call this? Sorry but I don't known if it is necesary */
55  /* The old root.
56   rtems_filesystem_freenode( &loc );
57   */
58  return 0;
59}
Note: See TracBrowser for help on using the repository browser.