154 IRIS WORKSTATION GUIDE
Version 1.0
Appendix K:
should be sent and returned as arrays.
In general, do not use any of the I/O routines from the standard C library, or
you will interfere with the operation of the IRIS terminal program. To do
I/O, use IRIS Graphics Library commands (
getvaluator()
,
getbutton()
, etc.).
WARNING: the libraries that you load
do
contain many of the standard C I/O
routines. The IRIS terminal program uses them for its I/O (to deal with the
physical keyboard, etc.). If you call them, you will get unpredictable (and
possibly catastrophic) results. Since you are building the whole IRIS terminal
program, these routines must appear in the library. It may be possible to re-
arrange these libraries in such a way that there is less danger, but this has not
been done so far.
You may use the standard storage management routines —
malloc()
,
free()
,
and friends—and the math routines. In fact, routines that are usually
considered to be part of the I/O library that are not related to physical I/O can
also be used.
sprintf()
, for example, can be used.
All the routines in the IRIS Graphics Library that are not exported have names
beginning with
gl_
. If you avoid these names, names in the IRIS terminal
program itself, and the C I/O routines mentioned above, you should not have
any problems with name conflicts.
Some other warnings are in order, and although they may seem obvious, they are
worth stating. The list below is not complete, but gives a flavor of the dangers:
• Infinite loops will cause the IRIS terminal program to hang, since
the dispatch routine just waits for the local routine to return before
it continues with the next command.
• Your new routine runs in the same address space as the rest of the
graphics library, and there is no array-bounds checking, etc. Bad
code can write over the entire IRIS terminal program.
malloc()
and
free()
use the same free list as the rest of the IRIS Graphics Library,
so errors in storage allocation can crash the IRIS Terminal.
• If you call
makeobj()
but not
closeobj()
, and then call a custom
routine that calls
makeobj()
, you will get the same result as you
would by calling
makeobj()
twice in a row from the remote host —
i.e., probably not exactly what you want.
Summary of Contents for IRIS Workstation
Page 1: ...IRIS Workstation Guide Version 1 0 Silicon Graphics Inc Mountain View California 94043 ...
Page 6: ...2 IRIS WORKSTATION GUIDE Version 1 0 Introduction ...
Page 24: ...20 IRIS WORKSTATION GUIDE Version 1 0 Hardware Installation ...
Page 30: ...26 IRIS WORKSTATION GUIDE Version 1 0 Operation ...
Page 48: ...44 IRIS WORKSTATION GUIDE Version 1 0 System Administration ...
Page 50: ...46 IRIS WORKSTATION GUIDE Version 1 0 Appendix A ...
Page 74: ...70 IRIS WORKSTATION GUIDE Version 1 0 Appendix B ...
Page 77: ...Version 1 0 IRIS WORKSTATION GUIDE 73 Appendix C e random gr error f wnrepaint ...
Page 78: ...74 IRIS WORKSTATION GUIDE Version 1 0 Appendix C ...
Page 92: ...88 IRIS WORKSTATION GUIDE Version 1 0 Appendix D ...
Page 102: ...98 IRIS WORKSTATION GUIDE Version 1 0 Appendix E ...
Page 103: ...Appendix F Manual Pages ...
Page 104: ......
Page 131: ...Version 1 0 126 IRIS WORKSTATION GUIDE Appendix F ...
Page 132: ......
Page 136: ...130 IRIS WORKSTATION GUIDE Version 1 0 Appendix H ...
Page 152: ...146 IRIS WORKSTATION GUIDE Version 1 0 Appendix J ...