Rev 4921 | Rev 5369 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 4921 | Rev 5215 | ||
---|---|---|---|
Line 24... | Line 24... | ||
24 | _DEFUN (fstat, (fd, buf), |
24 | _DEFUN (fstat, (fd, buf), |
25 | int fd _AND |
25 | int fd _AND |
26 | struct stat *buf) |
26 | struct stat *buf) |
27 | { |
27 | { |
28 | fileinfo_t info; |
28 | fileinfo_t info; |
- | 29 | struct tm time; |
|
- | 30 | ||
29 | __io_handle *ioh; |
31 | __io_handle *ioh; |
Line 30... | Line 32... | ||
30 | 32 | ||
31 | if( (fd < 0) || (fd >=64) ) |
33 | if( (fd < 0) || (fd >=64) ) |
32 | { |
34 | { |
Line 45... | Line 47... | ||
45 | { |
47 | { |
Line 46... | Line 48... | ||
46 | 48 | ||
47 | ioh = &__io_tab[fd]; |
49 | ioh = &__io_tab[fd]; |
Line -... | Line 50... | ||
- | 50 | get_fileinfo(ioh->name, &info); |
|
48 | get_fileinfo(ioh->name, &info); |
51 | |
- | 52 | if (info.attr & 0x10) |
|
- | 53 | buf->st_mode = S_IFDIR; |
|
- | 54 | else |
|
- | 55 | { |
|
- | 56 | if (info.attr & 0x07) |
|
- | 57 | buf->st_mode = S_IFREG|S_IRUSR|S_IXUSR; |
|
- | 58 | else |
|
49 | 59 | buf->st_mode = S_IFREG|S_IRUSR|S_IWUSR|S_IXUSR; |
|
- | 60 | } |
|
- | 61 | buf->st_blksize = 4096; |
|
- | 62 | ||
- | 63 | time.tm_sec = info.atime.sec; |
|
- | 64 | time.tm_min = info.atime.min; |
|
- | 65 | time.tm_hour = info.atime.hour; |
|
- | 66 | time.tm_mday = info.adate.day; |
|
- | 67 | time.tm_mon = info.adate.month; |
|
50 | buf->st_mode = S_IFREG; |
68 | time.tm_year = info.adate.year - 1900; |
- | 69 | time.tm_isdst = -1; |
|
- | 70 | buf->st_atime = mktime(&time); |
|
- | 71 | ||
- | 72 | time.tm_sec = info.ctime.sec; |
|
- | 73 | time.tm_min = info.ctime.min; |
|
- | 74 | time.tm_hour = info.ctime.hour; |
|
- | 75 | time.tm_mday = info.cdate.day; |
|
- | 76 | time.tm_mon = info.cdate.month; |
|
- | 77 | time.tm_year = info.cdate.year - 1900; |
|
- | 78 | time.tm_isdst = -1; |
|
- | 79 | buf->st_ctime = mktime(&time); |
|
- | 80 | ||
- | 81 | time.tm_sec = info.mtime.sec; |
|
- | 82 | time.tm_min = info.mtime.min; |
|
- | 83 | time.tm_hour = info.mtime.hour; |
|
- | 84 | time.tm_mday = info.mdate.day; |
|
- | 85 | time.tm_mon = info.mdate.month; |
|
- | 86 | time.tm_year = info.mdate.year - 1900; |
|
- | 87 | time.tm_isdst = -1; |
|
51 | buf->st_blksize = 4096; |
88 | buf->st_mtime = mktime(&time); |
Line 52... | Line 89... | ||
52 | buf->st_size = info.size; |
89 | |
53 | }; |
90 | }; |