mirror of
https://github.com/python/cpython.git
synced 2025-11-01 02:38:53 +00:00
New files.
This commit is contained in:
parent
2e1d433e43
commit
be0e9420a1
5 changed files with 675 additions and 0 deletions
31
Python/dup2.c
Normal file
31
Python/dup2.c
Normal file
|
|
@ -0,0 +1,31 @@
|
|||
/*
|
||||
* Public domain dup2() lookalike
|
||||
* by Curtis Jackson @ AT&T Technologies, Burlington, NC
|
||||
* electronic address: burl!rcj
|
||||
*
|
||||
* dup2 performs the following functions:
|
||||
*
|
||||
* Check to make sure that fd1 is a valid open file descriptor.
|
||||
* Check to see if fd2 is already open; if so, close it.
|
||||
* Duplicate fd1 onto fd2; checking to make sure fd2 is a valid fd.
|
||||
* Return fd2 if all went well; return BADEXIT otherwise.
|
||||
*/
|
||||
|
||||
#include <fcntl.h>
|
||||
|
||||
#define BADEXIT -1
|
||||
|
||||
int
|
||||
dup2(fd1, fd2)
|
||||
int fd1, fd2;
|
||||
{
|
||||
if (fd1 != fd2) {
|
||||
if (fcntl(fd1, F_GETFL) < 0)
|
||||
return BADEXIT;
|
||||
if (fcntl(fd2, F_GETFL) >= 0)
|
||||
close(fd2);
|
||||
if (fcntl(fd1, F_DUPFD, fd2) < 0)
|
||||
return BADEXIT;
|
||||
}
|
||||
return fd2;
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue