source: rtems/c/src/lib/libc/symlink.c @ 0b18036

Last change on this file since 0b18036 was 74835d7, checked in by Joel Sherrill <joel.sherrill@…>, on 08/11/00 at 20:04:03

2000-08-11 Chris Johns <ccj@…>

  • libc/chmod.c: Return ENOTSUP if filesystem does not have handler.
  • libc/eval.c: Ditto.
  • libc/fcntl.c: Ditto.
  • libc/fsync.c: Ditto.
  • libc/ioctl.c: Ditto.
  • libc/ioman.c: Ditto.
  • libc/link.c: Ditto.
  • libc/memfile.c: Ditto.
  • libc/mknod.c: Ditto.
  • libc/symlink.c: Ditto.
  • libc/libio.h(rtems_filesystem_dev_major_t): New macro.
  • libc/libio.h(rtems_filesystem_dev_minor_t): New macro.
  • Property mode set to 100644
File size: 987 bytes
Line 
1/*
2 *  symlink() - POSIX 1003.1b - X.X.X - XXX
3 *
4 *  COPYRIGHT (c) 1989-1999.
5 *  On-Line Applications Research Corporation (OAR).
6 *
7 *  The license and distribution terms for this file may be
8 *  found in the file LICENSE in this distribution or at
9 *  http://www.OARcorp.com/rtems/license.html.
10 *
11 *  $Id$
12 */
13
14#include "libio_.h"
15
16int symlink(
17  const char *actualpath,
18  const char *sympath
19)
20{
21  rtems_filesystem_location_info_t    loc;
22  int                                 i;
23  const char                         *name_start;
24  int                                 result;
25
26  rtems_filesystem_get_start_loc( sympath, &i, &loc );
27  result = (*loc.ops->evalformake)( &sympath[i], &loc, &name_start );
28  if ( result != 0 )
29    return -1;
30
31  if ( !loc.ops->symlink ) {
32    rtems_filesystem_freenode( &loc );
33    set_errno_and_return_minus_one( ENOTSUP );
34  }
35
36  result = (*loc.ops->symlink)( &loc, actualpath, name_start);
37
38  rtems_filesystem_freenode( &loc );
39
40  return result;
41}
42
Note: See TracBrowser for help on using the repository browser.