54 lines
		
	
	
		
			998 B
		
	
	
	
		
			C++
		
	
	
	
			
		
		
	
	
			54 lines
		
	
	
		
			998 B
		
	
	
	
		
			C++
		
	
	
	
| /* fhandler_process_fd.cc: fhandler for the /dev/{fd,std{in,out,err}} symlinks
 | |
| 
 | |
| This file is part of Cygwin.
 | |
| 
 | |
| This software is a copyrighted work licensed under the terms of the
 | |
| Cygwin license.  Please consult the file "CYGWIN_LICENSE" for
 | |
| details. */
 | |
| 
 | |
| #include "winsup.h"
 | |
| #include "path.h"
 | |
| #include "fhandler.h"
 | |
| 
 | |
| fhandler_dev_fd::fhandler_dev_fd ():
 | |
|   fhandler_virtual ()
 | |
| {
 | |
| }
 | |
| 
 | |
| virtual_ftype_t
 | |
| fhandler_dev_fd::exists ()
 | |
| {
 | |
|   return virt_symlink;
 | |
| }
 | |
| 
 | |
| int
 | |
| fhandler_dev_fd::fstat (struct stat *buf)
 | |
| {
 | |
|   const char *path = get_name ();
 | |
|   debug_printf ("fstat (%s)", path);
 | |
| 
 | |
|   fhandler_base::fstat (buf);
 | |
| 
 | |
|   buf->st_mode = S_IFLNK | STD_RBITS | S_IWUSR | S_IWGRP | S_IWOTH | STD_XBITS;
 | |
|   buf->st_ino = get_ino ();
 | |
| 
 | |
|   return 0;
 | |
| }
 | |
| 
 | |
| bool
 | |
| fhandler_dev_fd::fill_filebuf ()
 | |
| {
 | |
|   const char *path = get_name ();
 | |
|   debug_printf ("fill_filebuf (%s)", path);
 | |
| 
 | |
|   const char *native = get_native_name ();
 | |
|   if (!native)
 | |
|     {
 | |
|       return false;
 | |
|     }
 | |
| 
 | |
|   free(filebuf);
 | |
|   filebuf = cstrdup (native);
 | |
|   return true;
 | |
| }
 |