Article View: comp.std.c
Article #474Inappropriate topics.
From: Ray Butterworth
Date: Thu, 17 Aug 1989 19:59
Date: Thu, 17 Aug 1989 19:59
50 lines
3068 bytes
3068 bytes
In article <5692@ficc.uu.net>, peter@ficc.uu.net (Peter da Silva) writes:
> Subject: Re: ReadKey like Function in C
> I redirected this back to comp.std.c, because I'm really not interested
> in the POSIX standard here. The main reason POSIX comes up in this group
> is because of holes in the ANSI C standard. Many of them are reasonably
> brushed aside as outside the scope of the standard, but then the POSIX
> standard is referred to as something that will cover them... and as this
> message (I hope) shows, that just ain't so...
>
> I expressed dismay that POSIX mandated fork():
> ...
> But this rules out POSIX support for a wide variety of operating systems.
^^^^^^^^^^^^^^^^^
But POSIX in effect IS an operating system.
ANSI C defines a minimal compiler language that can reasonably
be implemented on a variety of operating systems. If a feature
is very OS-dependent, it doesn't belong in that standard.
ANSI C can't mandate such functions as "get one character from
the terminal" or "turn on this file's setgid bit" without making
the compiler useless for a significant number of operating systems.
POSIX defines a minimal (well not really) operating system that
can reasonably be implemented on a variety of different hardware
configurations. If a feature is very hardware specific, it
doesn't belong in that standard. POSIX can't mandate such
functions as ascbcd("ascii string", &bcdstring), which converts
the ascii characters to 6-bit BCD characters and inserts them
6 per 36-bit word into the bcdstring target, without making
the OS useless on a significant number of machine architectures.
I use such a machine, but I wouldn't expect 36-bit words
to be required in order to support a portable operating system,
much less be required to support a portable compiler.
If I am writing something that relies on 36-bit words,
I am writing something very machine-specific and if I expect
any support for it, it would be from a machine-specific library,
not from one mandated by ANSI C or by POSIX.
The point is, if you are trying to do something that is OS-specific,
you shouldn't be asking a portable compiler to provide the
functionality, and if you are trying to do something that is
hardware-specific, you shouldn't be asking a portable operating
system to provide the functionality.
setgid is very OS dependent; if you want to talk about that,
it belongs in UNIX or POSIX discussions, not in comp.std.c.
36-bit words are very hardware dependent; if you want to talk
about that, it belongs in comp.arch.thirtysix or comp.dps8, not
in comp.std.c or comp.std.unix.
Technical Details
Message-ID:
<28442@watmath.waterloo.edu>Path:
arc1-ca.pugleaf.net!utzoo!utgpu!watmath!rbutterworthReferences:
<148@trigon.UUCP> <207600029@s.cs.uiuc.edu> <941@lakesys.UUCP> <5692@ficc.uu.net>Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!utzoo!utgpu!watmath!rbutterworth From: rbutterworth@watmath.waterloo.edu (Ray Butterworth) Newsgroups: comp.std.c Subject: Inappropriate topics. Message-ID: <28442@watmath.waterloo.edu> Date: 17 Aug 89 19:59:17 GMT References: <148@trigon.UUCP> <207600029@s.cs.uiuc.edu> <941@lakesys.UUCP> <5692@ficc.uu.net> Organization: U of Waterloo, Ontario Lines: 50