[an error occurred while processing this directive]

HP OpenVMS Systems Documentation

Content starts here HP C Run-Time Library Reference Manual for OpenVMS Systems

HP C
Run-Time Library Reference Manual for OpenVMS Systems


Previous Contents Index

In addition to these options, any option that takes a key value (such as "fop" or "rat") can be negated by prefixing the value with "no". For example, specify "fop=notmp" to clear the "tmp" bit in the "fop" field.

Notes

  • While these options provide much flexibility and functionality, many of them can also cause severe problems if not used correctly.
  • You cannot share the default HP C for OpenVMS stream file I/O. If you wish to share files, you must specify "ctx=rec" to force record access mode. You must also specify the appropriate "shr" options depending on the type of access you want.
  • If you intend to share a file opened for append, you must specify appropriate share and record-locking options, to allow other accessors to read the record. The reason for doing this: the file is positioned at the end-of-file by reading records in a loop until end-of-file is reached.

For more information on these options, see the OpenVMS Record Management Services Reference Manual.


Description

The HP C RTL opens the new file for reading and writing, and returns the corresponding file descriptor.

If the file exists:

  • A version number one greater than any existing version is assigned to the newly created file.
  • By default, the new file inherits certain attributes from the existing version of the file unless those attributes are specified in the creat call. The following attributes are inherited:
    • Record format (FAB$B_RFM)
    • Maximum record size (FAB$W_MRS)
    • Carriage control (FAB$B_RAT)
    • File protection
  • When a new version of a file is created, and the named file already exists as a symbolic link, the file to which the symbolic link refers is created.

If the file did not previously exist:

  • It is given the file protection that results from performing a bitwise AND on the mode argument and the complement of the current protection mask.
  • It defaults to stream format with line-feed record separator and implied carriage-return attributes.

See also open , close , read , write , and lseek in this section.


Return Values

n A file descriptor.
- 1 Indicates errors, including protection violations, undefined directories, and conflicting file attributes.

[no]crmode

In the UNIX system environment, the crmode and nocrmode functions set and unset the terminal from cbreak mode. In cbreak mode, a single input character can be processed without pressing Return. This mode of single-character input is only supported with the Curses input routine getch .

Format

#include <curses.h>

crmode()

nocrmode()


Example


/* Program to demonstrate the use of crmod() and curses */ 
 
#include <curses.h> 
 
main() 
{ 
    WINDOW *win1; 
    char vert = '.', 
         hor = '.', 
         str[80]; 
 
    /*  Initialize standard screen, turn echo off.  */ 
    initscr(); 
    noecho(); 
 
    /*  Define a user window.  */ 
    win1 = newwin(22, 78, 1, 1); 
 
    /*  Turn on reverse video and draw a box on border.  */ 
    setattr(_REVERSE); 
    box(stdscr, vert, hor); 
    mvwaddstr(win1, 2, 2, "Test cbreak input"); 
    refresh(); 
    wrefresh(win1); 
 
    /*  Set cbreak, do some input, and output it.  */ 
    crmode(); 
    getch(); 
    nocrmode(); /* Turn off cbreak. */ 
    mvwaddstr(win1, 5, 5, str); 
    mvwaddstr(win1, 7, 7, "Type something to clear the screen"); 
    wrefresh(win1); 
 
    /*  Get another character, then delete the window.  */ 
    getch(); 
    wclear(win1); 
    touchwin(stdscr); 
    endwin(); 
} 

In this example, the first call to getch returns as soon as one character is entered, because crmode was called before getch was called. The second time getch is called, it waits until the Return key is pressed before processing the character entered, because nocrmode was called before getch was called the second time.


crypt

The password encryption function.

Format

#include <unistd.h>

#include <stdlib.h>

char *crypt (const char *key, const char *salt;)

Function Variants The crypt function has variants named _crypt32 and _crypt64 for use with 32-bit and 64-bit pointer sizes, respectively. See Section 1.9 for more information on using pointer-size-specific functions.

Argument

key

A user's typed password.

salt

A 2-character string.

Description

The crypt function generates an encoded version of a password. It is based on the NBS Data Encryption Standard, with variations intended to frustrate use of hardware implementations of the DES for key search.

The first argument to crypt is normally a user's typed password. The second is a 2-character string chosen from the set [a-zA-Z0-9./]. The salt string is used to perturb the DES algorithm in one of 4096 different ways, after which the password is used as the key to encrypt repeatedly a constant string. The returned value points to the encrypted password, in the same alphabet as the salt. The first two characters are the salt itself.

The return value from crypt points to a static data area whose content is overwritten by each call.

See also encrypt and setkey .


Return Value

pointer Pointer to the encrypted password.

csin (INTEGRITY SERVERS, ALPHA)

Returns the complex sine of its argument.

Format

#include <complex.h>

double complex csin (double complex z);

float complex csinf (float complex z);

long double complex csinl (long double complex z);


Argument

z

A complex value.

Description

The csin functions compute the complex sine value of z.

Return Values

x The complex sine value.

csinh (INTEGRITY SERVERS, ALPHA)

Returns the complex hyperbolic sine of its argument.

Format

#include <complex.h>

double complex csinh (double complex z);

float complex csinhf (float complex z);

long double complex csinhl (long double complex z);


Argument

z

A complex value.

Description

The csinh functions compute the complex hyperbolic sine of z.

Return Values

x The complex hyperbolic sine value.

csqrt (INTEGRITY SERVERS, ALPHA)

Returns the complex square root of its argument.

Format

#include <complex.h>

double complex csqrt (double complex z);

float complex csqrtf (float complex z);

long double complex csqrtl (long double complex z);


Argument

z

A complex value.

Description

The csqrt functions compute the complex square root of z, with a branch cut along the negative real axis.

Return Values

x The complex square root value in the range of the right half-plane (including the imaginary axis).

ctan (INTEGRITY SERVERS, ALPHA)

Returns the complex tangent of its argument.

Format

#include <complex.h>

double complex ctan (double complex z);

float complex ctanf (float complex z);

long double complex ctanl (long double complex z);


Argument

z

A complex value.

Description

The ctan functions compute the complex tangent value of z.

Return Values

x The complex tangent value.

ctanh (INTEGRITY SERVERS, ALPHA)

Returns the complex hyperbolic tangent of its argument.

Format

#include <complex.h>

double complex ctanh (double complex z);

float complex ctanhf (float complex z);

long double complex ctanhl (long double complex z);


Argument

z

A complex value.

Description

The ctanh functions compute the complex hyperbolic tangent value of z.

Return Values

x The complex hyperbolic tangent value.

ctermid

Returns a character string giving the equivalence string of SYS$COMMAND. This is the name of the controlling terminal.

Format

#include <stdio.h>

char *ctermid (char *str);

Function Variants The ctermid function has variants named _ctermid32 and _ctermid64 for use with 32-bit and 64-bit pointer sizes, respectively. See Section 1.9 for more information on using pointer-size-specific functions.

Argument

str

Must be a pointer to an array of characters. If this argument is NULL, the filename is stored internally and might be overwritten by the next ctermid call. Otherwise, the filename is stored beginning at the location indicated by the argument. The argument must point to a storage area of length L_ctermid (defined by the <stdio.h> header file).

Return Value

pointer Points to a character string.

ctime, ctime_r

Converts a time in seconds, since 00:00:00 January 1, 1970, to an ASCII string in the form generated by the asctime function.

Format

#include <time.h>

char *ctime (const time_t *bintim);

char *ctime_r (const time_t *bintim, char *buffer); (ISO POSIX-1)

Function Variants Compiling with the _DECC_V4_SOURCE and _VMS_V6_SOURCE feature-test macros defined enables a local-time-based entry point to this function that is equivalent to the behavior before OpenVMS Version 7.0.

Arguments

bintim

A pointer to a variable that specifies the time value (in seconds) to be converted.

buffer

A pointer to a character array that is at least 26 bytes long. This array is used to store the generated date-and-time string.

Description

The ctime and ctime_r functions convert the time pointed to by bintim into a 26-character string, and return a pointer to the string.

The difference between the ctime_r and ctime functions is that the former puts its result into a user-specified buffer. The latter puts its result into thread-specific static memory allocated by the HP C RTL, which can be overwritten by subsequent calls to ctime or asctime ; you must make a copy if you want to save it.

On success, ctime returns a pointer to the string; ctime_r returns its second argument. On failure, these functions return the NULL pointer.

The type time_t is defined in the <time.h> header file as follows:


typedef long int time_t 

The ctime function behaves as if it called tzset .

Note

Generally speaking, UTC-based time functions can affect in-memory time-zone information, which is processwide data. However, if the system time zone remains the same during the execution of the application (which is the common case) and the cache of timezone files is enabled (which is the default), then the _r variant of the time functions asctime_r , ctime_r , gmtime_r , and localtime_r , is both thread-safe and AST-reentrant.

If, however, the system time zone can change during the execution of the application or the cache of timezone files is not enabled, then both variants of the UTC-based time functions belong to the third class of functions, which are neither thread-safe nor AST-reentrant.

Return Values

x A pointer to the 26-character ASCII string, if successful.
NULL Indicates failure.

cuserid

Returns a pointer to a character string containing the name of the user initiating the current process.

Format

#include <unistd.h> (X/OPEN, POSIX-1)

#include <stdio.h> (X/OPEN)

char *cuserid (char *str);

Function Variants The cuserid function has variants named _cuserid32 and _cuserid64 for use with 32-bit and 64-bit pointer sizes, respectively. See Section 1.9 for more information on using pointer-size-specific functions.

Argument

str

If this argument is NULL, the user name is stored internally. If the argument is not NULL, it points to a storage area of length L_cuserid (defined by the <stdio.h> header file), and the name is written into that storage. If the user name is a null string, the function returns NULL.

Return Values

pointer Points to a string.
NULL If the user name is a null string.

DECC$CRTL_INIT

Allows you to call the HP C RTL from other languages or to use the HP C RTL when your main function is not in C. It initializes the run-time environment and establishes both an exit and condition handler. VAXC$CRTL_INIT is a synonym for DECC$CRTL_INIT . Either name invokes the same routine.

Format

#include <signal.h>

void DECC$CRTL_INIT(void);


Description

The following example shows a Pascal program that calls the HP C RTL using the DECC$CRTL_INIT function:


$ PASCAL EXAMPLE1 
$ LINK EXAMPLE1 
$ TY EXAMPLE1.PAS 
PROGRAM TESTC(input, output); 
PROCEDURE DECC$CRTL_INIT; extern; 
BEGIN 
   DECC$CRTL_INIT; 
END 

A shareable image need only call this function if it contains an HP C function for signal handling, environment variables, I/O, exit handling, a default file protection mask, or if it is a child process that should inherit context.

Although many of the initialization activities are performed only once, DECC$CRTL_INIT can safely be called multiple times.

At least one frame in the current call stack must have that handler established for OpenVMS exceptions to get mapped to UNIX signals.


decc$feature_get

Calls decc$feature_get_value with a character-string feature name, rather than an index.

Format

#include <unixlib.h>

int decc$feature_get (const char *name, int mode);


Argument

name

Pointer to a character string passed as a name in the list of supported features.

mode

An integer indicating which feature value to return. The values for mode are:
__FEATURE_MODE_DEFVAL Default value
__FEATURE_MODE_CURVAL Current value
__FEATURE_MODE_MINVAL Minimum value
__FEATURE_MODE_MAXVAL Maximum value
__FEATURE_MODE_INIT_STATE Initialization state

Description

The decc$feature_get function allows you to call the decc$feature_get_value function with a character-string feature name, rather than an index into an internal C RTL table.

On error, - 1 is returned and errno is set to indicate the error.

See also decc$feature_get_value , decc$feature_get_index , decc$feature_get_name , decc$feature_set , decc$feature_set_value , decc$feature_show , and decc$feature_show_all .


Return Values

n An integer corresponding to the specified name and mode arguments.
- 1 Indicates an error; errno is set.

decc$feature_get_index

Returns an index for accessing feature values.

Format

#include <unixlib.h>

int decc$feature_get_index (char *name);


Argument

name

Pointer to a character string passed as a name in the list of supported features.

Description

The decc$feature_get_index function looks up the string passed as name in the list of supported features. If the name is found, decc$feature_get_index returns a (nonnegative) index that can be used to set or retrieve the values for the feature. The comparison for name is case insensitive.

On error, - 1 is returned and errno is set to indicate the error.

See also decc$feature_get , decc$feature_get_value , decc$feature_get_name , decc$feature_set , decc$feature_set_value , decc$feature_show , and decc$feature_show_all .


Return Values

n A nonnegative index that can be used to set or retrieve the specified values for the feature.
- 1 Indicates an error; errno is set.

decc$feature_get_name

Returns a feature name.

Format

#include <unixlib.h>

char *decc$feature_get_name (int index);


Argument

index

An integer value from 0 to the highest allocated feature.

Description

The decc$feature_get_name function returns a pointer to a null-terminated string containing the name of the feature for the entry specified by index. The index value can be 0 to the highest allocated feature. If there is no feature corresponding to the index value, then the function returns a NULL pointer.

On error, NULL is returned and errno is set to indicate the error.

See also decc$feature_get , decc$feature_get_index , decc$feature_get_value , decc$feature_set , decc$feature_set_value , decc$feature_show , and decc$feature_show_all .


Return Values

x Pointer to a null-terminated string containing the name of the feature for the entry specified by index.
NULL Indicates an error; errno is set.


Previous Next Contents Index