mirror of
				https://github.com/ruby/ruby.git
				synced 2022-11-09 12:17:21 -05:00 
			
		
		
		
	Initial revision
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
		
							parent
							
								
									392296c12d
								
							
						
					
					
						commit
						3db12e8b23
					
				
					 225 changed files with 75935 additions and 0 deletions
				
			
		
							
								
								
									
										36
									
								
								missing/dup2.c
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										36
									
								
								missing/dup2.c
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,36 @@
 | 
			
		|||
/* 
 | 
			
		||||
 *    Copyright (c) 1991, Larry Wall
 | 
			
		||||
 *
 | 
			
		||||
 *    You may distribute under the terms of either the GNU General Public
 | 
			
		||||
 *    License or the Artistic License, as specified in the README file.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#include "defines.h"
 | 
			
		||||
 | 
			
		||||
#if defined(HAVE_FCNTL) && defined(F_DUPFD)
 | 
			
		||||
# include <fcntl.h>
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
int
 | 
			
		||||
dup2(oldfd,newfd)
 | 
			
		||||
int oldfd;
 | 
			
		||||
int newfd;
 | 
			
		||||
{
 | 
			
		||||
#if defined(HAVE_FCNTL) && defined(F_DUPFD)
 | 
			
		||||
    close(newfd);
 | 
			
		||||
    return fcntl(oldfd, F_DUPFD, newfd);
 | 
			
		||||
#else
 | 
			
		||||
    int fdtmp[256];
 | 
			
		||||
    int fdx = 0;
 | 
			
		||||
    int fd;
 | 
			
		||||
 | 
			
		||||
    if (oldfd == newfd)
 | 
			
		||||
	return 0;
 | 
			
		||||
    close(newfd);
 | 
			
		||||
    while ((fd = dup(oldfd)) != newfd)	/* good enough for low fd's */
 | 
			
		||||
	fdtmp[fdx++] = fd;
 | 
			
		||||
    while (fdx > 0)
 | 
			
		||||
	close(fdtmp[--fdx]);
 | 
			
		||||
    return 0;
 | 
			
		||||
#endif
 | 
			
		||||
}
 | 
			
		||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue