From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=0.2 required=5.0 tests=BAYES_00,INVALID_MSGID, REPLYTO_WITHOUT_TO_CC autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 10db24,fec75f150a0d78f5 X-Google-Attributes: gid10db24,public X-Google-Thread: 109fba,df854b5838c3e14 X-Google-Attributes: gid109fba,public X-Google-Thread: 1014db,df854b5838c3e14 X-Google-Attributes: gid1014db,public X-Google-Thread: 103376,df854b5838c3e14 X-Google-Attributes: gid103376,public From: seebs@solutions.solon.com (Peter Seebach) Subject: Re: ANSI C and POSIX (was Re: C/C++ knocks the crap out of Ada) Date: 1996/04/09 Message-ID: <4kdun1$2kk@solutions.solon.com>#1/1 X-Deja-AN: 146555289 references: <4kcein$mev@solutions.solon.com> organization: Usenet Fact Police (Undercover) reply-to: seebs@solon.com newsgroups: comp.lang.ada,comp.lang.c,comp.lang.c++,comp.edu Date: 1996-04-09T00:00:00+00:00 List-Id: In article , Robert Dewar wrote: >OK, "it" here is any specification of how long the buffer should be. So >Peter considers it undefined, in which case *any* call to read is >undefined. Actually I completely agree, if the spec of a routine is >incomplete or imprecise, the routine cannot be called without generating >undefined behavior. Well, read() can't be called in C. Assuming POSIX, the behavior is clearly defined, but no specification is made of which if any boundaries are checked; thus, the only safe thing to do is comply with all of them reliably. >But in the absence of Kazimir to tell us the "unwritten" rules, isn't it >just possible that this *might* lead to portability problems :-) Of course >by Peter's rules, we can't call read at all :-) Not in C. My rule would be that if a function does not say something is safe, you shouldn't do it. The normal descriptions of read() (I've read dozens, and they're all pretty much equivalent) describe the behavior in terms of a buffer having enough space to hold nbytes of data. >Peter do you have SPEC1170, I assume you must have a copy, so can you >see there if the spec is any more illuminating? No, I don't have a copy. Spec 1170 is nearly as expensive as ANSI, and I get expensive specs only once or twice a year. -s -- Peter Seebach - seebs@solon.com - Copyright 1996 Peter Seebach. C/Unix wizard -- C/Unix questions? Send mail for help. No, really! FUCK the communications decency act. Goddamned government. [literally.] The *other* C FAQ - http://www.solon.com/~seebs/c/c-iaq.html