Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!mnetor!seismo!husc6!bloom-beacon!wesommer From: wesommer@athena.mit.edu (William Sommerfeld) Newsgroups: comp.lang.c Subject: Re: VMS Descriptors Message-ID: <995@bloom-beacon.MIT.EDU> Date: Tue, 23-Jun-87 20:32:23 EDT Article-I.D.: bloom-be.995 Posted: Tue Jun 23 20:32:23 1987 Date-Received: Thu, 25-Jun-87 04:21:03 EDT References: <7960@brl-adm.ARPA> Sender: daemon@bloom-beacon.MIT.EDU Reply-To: wesommer@athena.mit.edu (William Sommerfeld) Organization: Massachusetts Institute of Technology Lines: 30 In article <7960@brl-adm.ARPA> EDSTROM%UNCAEDU.BITNET@wiscvm.wisc.EDU writes: >This is correct about descriptors being easy to use. His version of the VMS >"hello world" program might look like this: > [ 21 lines of obscure C code follow ] That doesn't look easy at all. I don't really know that much about VMS, but.. \begin{flame} sys$qiow() appears to be the equivalent to either write(), or writev(), or probably both at the same time, on UNIX systems. This routine takes 12 arguments??!? Eight of which are zero in this case??!?? No wonder DEC can't get the C runtime library to work correctly. Without those descriptors, on my UNIX system, I can write: main() { write(1, "Hello, world!\n", 14); } \end{flame} I also note that the macro he uses to initialize the descriptor uses illegal Kernighan and Ritchie C: you can't initialize an automatic structure. - Bill