National Instruments 320685D-01 ユーザーズマニュアル

ページ / 211
Chapter 5
UNIX Compiler/Linker Issues
LabWindows/CVI Programmer Reference Manual
5-8
©
 National Instruments Corporation
and suspends operation at the statement that caused the exception. If this signal occurs 
when no program is running, LabWindows/CVI exits immediately.
You cannot use 
signal
sigaction
sigset
, or 
sigvec
 to make your program ignore the 
signals this section lists.
Note
If your program begins to loop indefinitely, you can often suspend execution by 
sending a signal to the LabWindows/CVI process as follows:
1. Use the 
ps
 command to identify the process number of LabWindows/CVI.
2. Send the 
kill 
-SIGNAL pid
 command to that process. For example, if the 
LabWindows/CVI process number is 3478, the command 
kill -INT 3478
 
sends the 
SIGINT
 signal to LabWindows/CVI. When you want to suspend 
execution of your program in LabWindows/CVI, try using 
SIGINT
 or 
SIGQUIT
If sending the 
SIGINT
 or 
SIGQUIT
 signal fails, you must use the stronger 
SIGTERM
 signal, which terminates not just your program but also 
LabWindows/CVI.
Note
Some signals can cause LabWindows/CVI to dump core you are running a 
program that does not install handlers for them.
Solaris 1 ANSI C Library Implementation
The C library that comes with Sun Solaris 1 (SunOS 4.1.x) does not comply with the ANSI C 
standard as follows:
Some ANSI C functions are missing from the library.
Some library functions have different behavior than the ANSI standard specifies.
LabWindows/CVI corrects these problems by linking your programs to a supplemental C 
library 
libcfix.a
, which is in the 
lib
 subdirectory of the LabWindows/CVI installation 
directory. This library contains replacement functions for some Sun Solaris functions and for 
the ANSI functions that are not available in the Sun Solaris library. The names of the 
replacement functions differ from the Sun Solaris function names and do not interfere with 
programs or libraries that depend upon the non-ANSI behavior of some Sun Solaris functions. 
The LabWindows/CVI ANSI header files contain macro definitions for the replacement 
functions. When you compile with the LabWindows/CVI headers, your program references 
the LabWindows/CVI replacement functions instead of the Sun Solaris versions.
Consider the case of 
realloc
, which LabWindows/CVI replaces with 
_cvi_realloc
. The 
Sun Solaris 1 implementation of the 
realloc
 function fails when the first argument is 
NULL. The ANSI standard requires that 
realloc
 accept NULL as a first argument. In the 
library 
libcfix.a
, LabWindows/CVI defines 
_cvi_realloc
, which treats a NULL 
argument as the ANSI standard prescribes. The LabWindows/CVI header file 
stdlib.h
 
00ProRef.book : 06chap05.fm  Page 8  Monday, March 9, 1998  3:23 PM