diff options
author | Arnold D. Robbins <arnold@skeeve.com> | 2012-07-26 23:07:52 +0300 |
---|---|---|
committer | Arnold D. Robbins <arnold@skeeve.com> | 2012-07-26 23:07:52 +0300 |
commit | e4945f9ecab4d2a143f9e41b6a112bb2d36fa7c1 (patch) | |
tree | f8aa8492b90d2ed5bc3c44e5148e25621f1dd8b5 /vms | |
parent | ce63a9b40865adeaa643208d9c645bd5ac5575e3 (diff) | |
download | gawk-e4945f9ecab4d2a143f9e41b6a112bb2d36fa7c1.tar.gz |
Add os_isreadable function for future use.
Diffstat (limited to 'vms')
-rw-r--r-- | vms/ChangeLog | 4 | ||||
-rw-r--r-- | vms/gawkmisc.vms | 25 |
2 files changed, 29 insertions, 0 deletions
diff --git a/vms/ChangeLog b/vms/ChangeLog index 9988d34b..c4cb6ed9 100644 --- a/vms/ChangeLog +++ b/vms/ChangeLog @@ -1,3 +1,7 @@ +2012-07-26 Arnold D. Robbins <arnold@skeeve.com> + + * gawkmisc.vms (os_isreadable): New function. + 2012-03-29 Arnold D. Robbins <arnold@skeeve.com> * config.h: Add definition for _Noreturn. diff --git a/vms/gawkmisc.vms b/vms/gawkmisc.vms index 90b2530b..f373b5f2 100644 --- a/vms/gawkmisc.vms +++ b/vms/gawkmisc.vms @@ -144,6 +144,31 @@ int fd; return (fstat(fd, &sbuf) == 0 && S_ISDIR(sbuf.st_mode)); } +/* os_isreadable --- fd can be read from */ + +int +os_isreadable(int fd) +{ + struct stat sbuf; + + if (fstat(fd, &sbuf) != 0) + return false; + + switch (sbuf.st_mode & S_IFMT) { + case S_IFREG: + case S_IFCHR: /* ttys, /dev/null, .. */ +#ifdef S_IFSOCK + case S_IFSOCK: +#endif +#ifdef S_IFIFO + case S_IFIFO: +#endif + return true; + default: + return false; + } +} + /* os_is_setuid --- true if running setuid root */ int |