blob: 96ebd85ea7219e30aead97ad74b13d5079d948cf (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
|
/* 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;
}
|