3 ms·
Ew… I guess this is what 60 years of backwards compatibility looks like?
by aaaaaaaaaaab 4y ago
Ew… I guess this is what 60 years of backwards compatibility looks like?
- Joker_vD 4y agoThis is what trying to heave 50 years-old, backward compatible API on top of a completely differently designed, 60 years-old, backward compatible API looks like.
- lmz 4y agoAnother example of putting C on top of a non-UNIX base would probably be VMS e.g. all the file options here (found using a search) http://odl.sysworks.biz/disk$axpdocdec971/progtool/deccv56/5763profile0111.html#creat_routine http://odl.sysworks.biz/disk$axpdocdec971/progtool/deccv56/5...
- mek6800d2 4y agoBut it works well! Those file options are syntactically optional. I worked on VAX/VMS with Fortran for 5 years and then helped develop generic spacecraft control-center software for NASA in C under Unix. In 1992-1993, we ported the system to VAX/VMS for a European Space Agency project. It went very smoothly and quickly, thanks to DEC's largely complete implementation of the C library (including BSD networking), leaving us with plenty of time to develop the project-specific software. I ported over Sun's rpcgen and GNU's flex and cccp; plus bison or an actual yacc. As you showed, some of the C calls have optional parameters; e.g., strerror() could take an additional argument, a VMS status code, that would provide a more specific error message than just the ERRNO-based messages. However, in almost all cases, the normal Unix call signatures worked as expected. (I did have to come up with a work-around for our one case of a network server using fork().) Thumbs up on VMS and C!
- aaaaaaaaaaab 4y agoThis sentence says it all: >“Normal files” have data in EBCDIC