Mail Archives: djgpp-workers/1997/11/19/12:11:40
Subject: <sys/stat.h> constants
The values of some constants in <sys/stat.h> are different
from all other systems I've seen, especially S_IFDIR.
While implementations are probably free to use values of their choice,
I nevertheless suggest changing them to standard ones.
I don't think this should break anything.
Markus
*** stat.org Wed Aug 9 22:06:26 1995
--- stat.h Wed Nov 19 15:55:12 1997
***************
*** 11,22 ****
#ifndef __STRICT_ANSI__
! #define S_ISBLK(m) (((m) & 0xf000) == 0x1000)
#define S_ISCHR(m) (((m) & 0xf000) == 0x2000)
! #define S_ISDIR(m) (((m) & 0xf000) == 0x3000)
! #define S_ISFIFO(m) (((m) & 0xf000) == 0x4000)
#define S_ISREG(m) (((m) & 0xf000) == 0x0000)
! #define S_ISUID 0x80000000
! #define S_ISGID 0x40000000
#define S_IRUSR 00400
--- 11,23 ----
#ifndef __STRICT_ANSI__
! #define S_ISBLK(m) (((m) & 0xf000) == 0x3000)
#define S_ISCHR(m) (((m) & 0xf000) == 0x2000)
! #define S_ISDIR(m) (((m) & 0xf000) == 0x4000)
! #define S_ISFIFO(m) (((m) & 0xf000) == 0x1000)
#define S_ISREG(m) (((m) & 0xf000) == 0x0000)
! #define S_ISUID 04000
! #define S_ISGID 02000
! #define S_ISVTX 01000
#define S_IRUSR 00400
***************
*** 68,75 ****
#define S_IFREG 0x0000
! #define S_IFBLK 0x1000
#define S_IFCHR 0x2000
! #define S_IFDIR 0x3000
! #define S_IFIFO 0x4000
#define S_IFFIFO S_IFIFO
--- 69,76 ----
#define S_IFREG 0x0000
! #define S_IFBLK 0x3000
#define S_IFCHR 0x2000
! #define S_IFDIR 0x4000
! #define S_IFIFO 0x1000
#define S_IFFIFO S_IFIFO
- Raw text -