[an error occurred while processing this directive]
HP OpenVMS Systems Documentation |
HP C
|
Previous | Contents | Index |
Converts its argument to a null-terminated string of ASCII digits and returns the address of the string. The string is stored in a thread-specific memory location created by the HP C RTL.
#include <stdlib.h>char *ecvt (double value, int ndigits, int *decpt, int *sign);
value
An object of type double that is converted to a null-terminated string of ASCII digits.ndigits
The number of ASCII digits to be used in the converted string.decpt
The position of the decimal point relative to the first character in the returned string. A negative int value means that the decimal point is decpt number of spaces to the left of the returned digits (the spaces being filled with zeros). A 0 value means that the decimal point is immediately to the left of the first digit in the returned string.sign
An integer value that indicates whether the value argument is positive or negative. If value is negative, the function places a nonzero value at the address specified by sign. Otherwise, the function assigns 0 to the address specified by sign.
The ecvt function converts value to a null-terminated string of length ndigits, and returns a pointer to it. The resulting low-order digit is rounded to the correct digit for outputting ndigits digits in C E-format. The decpt argument is assigned the position of the decimal point relative to the first character in the string.Repeated calls to the ecvt function overwrite any existing string.
The ecvt , fcvt , and gcvt functions represent the following special values specified in the IEEE Standard for floating-point arithmetic:
Value Representation Quiet NaN NaNQ Signalling NaN NaNS +Infinity Infinity - Infinity - Infinity The sign associated with each of these values is stored into the sign argument. In IEEE floating-point representation, a value of 0 (zero) can be positive or negative, as set by the sign argument.
See also gcvt and fcvt .
x The value of the converted string.
Closes the group database when processing is complete.
#include <grp.h>void endgrent (void);
The endgrent function closes the group database.This function is always successful. No value is returned, and errno is not set.
Closes the user database and any private stream used by getpwent .
#include <pwd.h>void endpwent (void);
The endpwent function closes the user database and any private stream used by getpwent .No value is returned. If an I/O error occurred, the function sets errno to EIO.
See also getpwent , getpwuid , getpwnam , and setpwent .
Clears the terminal screen and frees any virtual memory allocated to Curses data structures.
#include <curses.h>void endwin (void);
A program that calls Curses functions must call the endwin function before exiting to restore the previous environment of the terminal screen.
Generates uniformly distributed pseudorandom-number sequences. Returns 48-bit nonnegative, double-precision, floating-point values.
#include <stdlib.h>double erand48 (unsigned short int xsubi[3]);
xsubi
An array of three short int s, which form a 48-bit integer when concatentated together.
The erand48 function generates pseudorandom numbers using the linear congruential algorithm and 48-bit integer arithmetic.It returns nonnegative, double-precision, floating-point values uniformly distributed over the range of y values, such that, 0.0 <= y < 1.0.
The erand48 function works by generating a sequence of 48-bit integer values, Xi, according to the linear congruential formula:
Xn+1 = (aXn+c)mod m n >= 0The argument m equals 248 , so 48-bit integer arithmetic is performed. Unless you invoke the lcong48 function, the multiplier value a and the addend value c are:
a = 5DEECE66D16 = 2736731631558 c = B16 = 138The erand48 function requires that the calling program pass an array as the xsubi argument. For the first call, the array must be initialized to the value of the pseudorandom-number sequence. Unlike the drand48 function, it is not necessary to call an initialization function prior to the first call.
By using different arguments, the erand48 function allows separate modules of a large program to generate several independent sequences of pseudorandom numbers; for example, the sequence of numbers that one module generates does not depend upon how many times the function is called by other modules.
n A nonnegative, double-precision, floating-point value.
Erases the window by painting it with blanks. The erase function acts on the stdscr window.
#include <curses.h>int erase();
int werase (WINDOW *win);
win
A pointer to the window.
Both the erase and werase functions leave the cursor at the current position on the terminal screen after completion; they do not return the cursor to the home coordinates of (0,0).
OK Indicates success. ERR Indicates an error.
Returns the error function of its argument.
#include <math.h>double erf (double x);
float erff (float x); (ALPHA ONLY)
long double erfl (long double x); (ALPHA ONLY)
double erfc (double x); (ALPHA ONLY)
float erfcf (float x); (ALPHA ONLY)
long double erfcl (long double x); (ALPHA ONLY)
x
A radian expressed as a real number.
The erf functions return the error function of x, where erf (x), erff (x), and erfl (x) equal 2/sqrt(pi) times the area under the curve e**( - t**2) between 0 and x.The erfc functions return (1.0 - erf (x)). The erfc function can result in an underflow as x gets large.
x The value of the error function ( erf ) or complementary error function ( erfc ). NaN x is NaN; errno is set to EDOM. 0 Underflow occurred; errno is set to ERANGE.
Passes the name of an image to be activated in a child process. This function is nonreentrant.
#include <unistd.h>int execl (const char *file_spec, const char *arg0, ..., (char *)0); (ISO POSIX-1)
int execl (char *file_spec, ...); (COMPATABILITY)
file_spec
The full file specification of a new image to be activated in the child process.arg0, ...
A sequence of pointers to null-terminated character strings.If the POSIX-1 format is used, at least one argument must be present and must point to a string that is the same as the new process file name (or its last component). (This pointer can also be the NULL pointer, but then execle would accomplish nothing.) The last pointer must be the NULL pointer. This is also the convention if the compatibility format is used.
To understand how the exec functions operate, consider how the OpenVMS system calls any HP C program, as shown in the following syntax:
int main (int argc, char *argv[], char *envp[]);
The identifier argc is the argument count; argv is an array of argument strings. The first member of the array (argv[0]) contains the name of the image. The arguments are placed in subsequent elements of the array. The last element of the array is always the NULL pointer.
An exec function calls a child process in the same way that the run-time system calls any other HP C program. The exec functions pass the name of the image to be activated in the child; this value is placed in argv[0]. However, the functions differ in the way they pass arguments and environment information to the child:
- Arguments can be passed in separate character strings ( execl , execle , and execlp ) or in an array of character strings ( execv , execve , and execvp ).
- The environment can be explicitly passed in an array ( execle and execve ) or taken from the parent's environment ( execl , execv , execlp , and execvp ).
If vfork was called before invoking an exec function, then when the exec function completes, control is returned to the parent process at the point of the vfork call. If vfork was not called, the exec function waits until the child has completed execution and then exits the parent process. See vfork and Chapter 5 for more information.
- 1 Indicates failure.
Passes the name of an image to be activated in a child process. This function is nonreentrant.
#include <unistd.h>int execle (char *file_spec, char *arg0, ..., (char *)0, char *envp[]); (ISO POSIX-1)
int execle (char *file_spec, ...); (COMPATABILITY)
file_spec
The full file specification of a new image to be activated in the child process.arg0, ...
A sequence of pointers to null-terminated character strings.If the POSIX-1 format is used, at least one argument must be present and must point to a string that is the same as the new process file name (or its last component). (This pointer can also be the NULL pointer, but then execle would accomplish nothing.) The last pointer must be the NULL pointer. This is also the convention if the compatibility format is used.
envp
An array of strings that specifies the program's environment. Each string in envp has the following form:
name = value
The name can be one of the following names and the value is a null-terminated string to be associated with the name:
- HOME---Your login directory
- TERM---The type of terminal being used
- PATH---The default device and directory
- USER---The name of the user who initiated the process
The last element in envp must be the NULL pointer.
When the operating system executes the program, it places a copy of the current environment vector (envp) in the external variable environ.
See execl for a description of how the exec functions operate.
- 1 Indicates failure.
Passes the name of an image to be activated in a child process. This function is nonreentrant.
#include <unistd.h>int execlp (const char *file_name, const char *arg0, ..., (char *)0); (ISO POSIX-1)
int execlp (char *file_name, ...); (COMPATABILITY)
file_name
The file name of a new image to be activated in the child process. The device and directory specification for the file is obtained by searching the VAXC$PATH environment name.argn
A sequence of pointers to null-terminated character strings. By convention, at least one argument must be present and must point to a string that is the same as the new process file name (or its last component)....
A sequence of pointers to strings. At least one pointer must exist to terminate the list. This pointer must be the NULL pointer.
See execl for a description of how the exec functions operate.
- 1 Indicates failure.
Passes the name of an image to be activated in a child process. This function is nonreentrant.
#include <unistd.h>int execv (char *file_spec, char *argv[]);
file_spec
The full file specification of a new image to be activated in the child process.argv
An array of pointers to null-terminated character strings. These strings constitute the argument list available to the new process. By convention, argv[0] must point to a string that is the same as the new process file name (or its last component). argv is terminated by a NULL pointer.
See execl for a description of how the exec functions operate.
- 1 Indicates failure.
Passes the name of an image to be activated in a child process. This function is nonreentrant.
#include <unistd.h>int execve (const char *file_spec, char *argv[], char *envp[]);
file_spec
The full file specification of a new image to be activated in the child process.argv
An array of pointers to null-terminated character strings. These strings constitute the argument list available to the new process. By convention, argv[0] must point to a string that is the same as the new process file name (or its last component). argv is terminated by a NULL pointer.envp
An array of strings that specifies the program's environment. Each string in envp has the following form:
name = value
The name can be one of the following names and the value is a null-terminated string to be associated with the name:
- HOME---Your login directory
- TERM---The type of terminal being used
- PATH---The default device and directory
- USER---The name of the user who initiated the process
The last element in envp must be the NULL pointer.
When the operating system executes the program, it places a copy of the current environment vector (envp) in the external variable environ .
See execl for a description of how the exec functions operate.
- 1 Indicates failure.
Passes the name of an image to be activated in a child process. This function is nonreentrant.
#include <unistd.h>int execvp (const char *file_name, char *argv[]);
file_name
The file name of a new image to be activated in the child process. The device and directory specification for the file is obtained by searching the environment name VAXC$PATH.argv
An array of pointers to null-terminated character strings. These strings constitute the argument list available to the new process. By convention, argv[0] must point to a string that is the same as the new process file name (or its last component). argv is terminated by a NULL pointer.
See execl for a description of how the exec functions operate.
- 1 Indicates failure.
Terminate execution of the program from which they are called. These functions are nonreentrant.
#include <stdlib.h>void exit (int status);
#include <unistd.h>
void _exit (int status);
status
A status value of EXIT_SUCCESS (0), EXIT_FAILURE (1), or a number from 2 to 255:
- A status value of 0 or EXIT_SUCCESS is translated to the OpenVMS SS$_NORMAL status code to return the OpenVMS success value.
- A status value of 1 or EXIT_FAILURE is translated to an error-level exit status. The status value is passed to the parent process.
- Any other status value is left the same.
To use these status values as described, include <unistd.h> and compile with the _POSIX_EXIT feature-test macro set (either with /DEFINE=_POSIX_EXIT or with #define _POSIX_EXIT at the top of your file, before any file inclusions). This behavior is available only on OpenVMS Version 7.0 and higher systems.
If the process was invoked by DCL, the status is interpreted by DCL, and a message is displayed.If the process was a child process created using vfork or an exec function, then the child process exits and control returns to the parent. The two functions are identical; the _exit function is retained for reasons of compatibility with VAX C.
The exit and _exit functions make use of the $EXIT system service. If your process is being invoked by the RUN command using any of the hibernation and scheduled wakeup qualifiers, the process might not correctly return to hibernation state when an exit or _exit call is made.
Note
EXIT_SUCCESS and EXIT_FAILURE are portable across any ANSI C compiler to indicate success or failure. On OpenVMS systems, they are mapped to OpenVMS condition codes with the severity set to success or failure, respectively. Values in the range of 2 to 255 can be used by a child process to communicate a small amount of data to the parent. The parent retreives this data using the wait , wait3 , wait4 , or waitpid functions.
Previous | Next | Contents | Index |