source: rtems/c/src/lib/libc/dup2.c @ c629812

4.104.114.84.95
Last change on this file since c629812 was 08311cc3, checked in by Joel Sherrill <joel.sherrill@…>, on 11/17/99 at 17:51:34

Updated copyright notice.

  • Property mode set to 100644
File size: 892 bytes
Line 
1/*
2 *  dup2() - POSIX 1003.1b 6.2.1 Duplicate an Open File Descriptor
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 <unistd.h>
15#include <fcntl.h>
16
17#include "libio_.h"
18
19int dup2(
20  int fildes,
21  int fildes2
22)
23{
24  int          status;
25  struct stat  buf;
26
27  /*
28   *  If fildes is not valid, then fildes2 should not be closed.
29   */
30
31  status = fstat( fildes, &buf );
32  if ( status == -1 )
33    return -1;
34
35  /*
36   *  If fildes2 is not valid, then we should not do anything either.
37   */
38
39  status = fstat( fildes2, &buf );
40  if ( status == -1 )
41    return -1;
42
43  /*
44   *  This fcntl handles everything else.
45   */
46 
47  return fcntl( fildes, F_DUPFD, fildes2 );
48}
Note: See TracBrowser for help on using the repository browser.