make configure attempt to catch broken floating point CFLAGS/defaults
[musl.git] / src / stat / fstat.c
blobab4afc0f9220cc53951630128e6b8f8ac295b842
1 #include <sys/stat.h>
2 #include <errno.h>
3 #include <fcntl.h>
4 #include "syscall.h"
5 #include "libc.h"
7 void __procfdname(char *, unsigned);
9 int fstat(int fd, struct stat *st)
11 int ret = __syscall(SYS_fstat, fd, st);
12 if (ret != -EBADF || __syscall(SYS_fcntl, fd, F_GETFD) < 0)
13 return __syscall_ret(ret);
15 char buf[15+3*sizeof(int)];
16 __procfdname(buf, fd);
17 #ifdef SYS_stat
18 return syscall(SYS_stat, buf, st);
19 #else
20 return syscall(SYS_fstatat, AT_FDCWD, buf, st, 0);
21 #endif
24 LFS64(fstat);