main() { printf("cleanup\n"); exit(1); }
}end
-sys stat note{ stat() in default lib(s) }end link{
- #if _STD_
- #include <stddef.h>
- #else
- #include <sys/types.h>
- #endif
- #include <time.h>
- #include <sys/stat.h>
- main()
- { struct stat st;
- fstat(0,&st);
- }
-}end
-
hdr stat note{ stat() in default lib(s) }end link{
#if _STD_
#include <stddef.h>
are not needed and they may get in the way so we remove them here.
*/
#if defined(_SFBINARY_H)
-#undef _sys_stat
+#undef HAVE_SYS_ST
#undef _hdr_stat
#undef _lib_poll
#undef _stream_peek
#include <stdint.h>
#include <stddef.h>
-#if _sys_stat
+#if HAVE_SYS_STAT_H
#include <sys/stat.h>
#else
#if _hdr_stat
#include <stat.h>
-#ifndef _sys_stat
-#define _sys_stat 1
+#ifndef HAVE_SYS_STAT_H
+#define HAVE_SYS_STAT_H 1
#endif
#endif
-#endif /*_sys_stat*/
+#endif /*HAVE_SYS_STAT_H*/
-#ifndef _sys_stat
-#define _sys_stat 0
+#ifndef HAVE_SYS_STAT_H
+#define HAVE_SYS_STAT_H 0
#endif
#include <fcntl.h>
#endif
/* 64-bit vs 32-bit file stuff */
-#if _sys_stat
+#if HAVE_SYS_STAT_H
#ifdef _LARGEFILE64_SOURCE
typedef struct stat64 Stat_t;
#define lseek lseek64
typedef int (*Onexit_f)(void);
extern Onexit_f onexit(Onexit_f);
-#if _sys_stat
+#if HAVE_SYS_STAT_H
extern int fstat(int, Stat_t *);
#endif
**
** Written by Kiem-Phong Vo.
*/
-#if !_sys_stat
+#if !HAVE_SYS_STAT_H
struct stat {
int st_mode;
int st_size;
};
#define fstat(fd,st) (-1)
-#endif /*_sys_stat*/
+#endif /*HAVE_SYS_STAT_H*/
/**
* @param f stream to be buffered
st.st_mode = 0;
/* if has discipline, set size by discipline if possible */
- if (!_sys_stat || disc) {
+ if (!HAVE_SYS_STAT_H || disc) {
if ((f->here = SFSK(f, (Sfoff_t) 0, SEEK_CUR, disc)) < 0)
goto unseekable;
else {
if (fstat((int) f->file, &st) < 0)
f->here = -1;
else {
-#if _sys_stat && _stat_blksize /* preferred io block size */
+#if HAVE_SYS_STAT_H && _stat_blksize /* preferred io block size */
if ((blksize = (ssize_t) st.st_blksize) > 0)
while ((blksize + (ssize_t) st.st_blksize) <= SF_PAGE)
blksize += (ssize_t) st.st_blksize;
/* set line mode for terminals */
if (!(f->flags & SF_LINE) && isatty(f->file))
f->flags |= SF_LINE;
-#if _sys_stat
+#if HAVE_SYS_STAT_H
else { /* special case /dev/null */
reg int dev, ino;
dev = (int) st.st_dev;
for (disc = f->disc; disc; disc = disc->disc)
if (disc->seekf)
break;
- if (!_sys_stat || disc) {
+ if (!HAVE_SYS_STAT_H || disc) {
Sfoff_t e;
if ((e = SFSK(f, 0, SEEK_END, disc)) >= 0)
f->extent = e;
if (SFSK(f, f->here, SEEK_SET, disc) != f->here)
f->here = SFSK(f, (Sfoff_t) 0, SEEK_CUR, disc);
}
-#if _sys_stat
+#if HAVE_SYS_STAT_H
else {
Stat_t st;
if (fstat(f->file, &st) < 0)
#define _sys_types 1 /* #include <sys/types.h> ok */
//#define _hdr_unistd 1 /* #include <unistd.h> ok */
#define _typ_off64_t 1 /* off64_t is a type */
-#define _sys_stat 1 /* stat() in default lib(s) */
#define _lib_remove 1 /* remove() in default lib(s) */
#define _lib_getpagesize 0 /* getpagesize() in default lib(s) */
#define _tmp_rmfail 1 /* file not removable if still opened */