Skip to Main Content United States    
PRODUCTS SUPPORT SOLUTIONS SERVICES
COMPAQ SOFTWARE
Compaq C

Compaq C
Run-Time Library Reference Manual for OpenVMS Systems


Previous Contents Index


rmdir

Removes a directory file.

Format

#include <unistd.h>

int rmdir (const char *path);


Arguments

path

A directory path name.

Description

This function removes a directory file whose name is specified in the path argument. The directory is removed only if it is empty.

Restriction

When using OpenVMS format names, the path argument must be in the form directory.dir.

Return Values

0 Indicates success.
--1 An error occurred; errno is set to indicate the error.

sbrk

Determines the lowest virtual address that is not used with the program.

Format

#include <unistd.h>

void *sbrk (long int incr);


Argument

incr

The number of bytes to add to the current break address.

Description

This function adds the number of bytes specified by its argument to the current break address and returns the old break address.

When a program is executed, the break address is set to the highest location defined by the program and data storage areas. Consequently, sbrk is needed only by programs that have growing data areas.

sbrk(0) returns the current break address.


Return Values

x The old break address.
( void *)(--1) Indicates that the program is requesting too much memory.

Restriction

Unlike other C library implementations, the Compaq C RTL memory allocation functions (such as malloc ) do not rely on brk or sbrk to manage the program heap space. Consequently, on OpenVMS systems, calling brk or sbrk can interfere with memory allocation routines. The brk and sbrk functions are provided only for compatibility purposes.

scalb (ALPHA ONLY)

Returns the exponent of a floating-point number.

Format

#include <math.h>

double scalb (double x, double n);

float scalbf (float x, float n);

long double scalbl (long double x, long double n);


Argument

x

A nonzero floating-point number.

n

An integer.

Description

The scalb functions return x*(2**n) for integer n.

Return Values

x On successful completion, x*(2** n) is returned.
<pm symbol>HUGE_VAL On overflow, scalb returns <pm symbol>HUGE_VAL (according to the sign of x) and sets errno to ERANGE.
0 Underflow occurred; errno is set to ERANGE.
x x is <pm symbol>Infinity.
NaN x or n is NaN; errno is set to EDOM.

scanf

Performs formatted input from the standard input (stdin), interpreting it according to the format specification. See Chapter 2 for information on format specifiers.

Format

#include <stdio.h>

int scanf (const char *format_spec, ...);


Arguments

format_spec

Pointer to a string containing the format specification. The format spcification consists of characters to be taken literally from the input or converted and placed in memory at the specified input sources. For a list of conversion characters, see Chapter 2.

...

Optional expressions that are pointers to objects whose resultant types correspond to conversion specifications given in the format specification.

If no conversion specifications are given, you can omit these input pointers. Otherwise, the function call must have at least as many input pointers as there are conversion specifications, and the conversion specifications must match the types of the input pointers.

Conversion specifications are matched to input sources in left-to-right order. Excess input pointers, if any, are ignored.


Return Values

x The number of successfully matched and assigned input items.
EOF Indicates that a read error occurred prior to any successful conversions.The function sets errno . For a list of errno values set by this function, see fscanf in this section.

[w]scanw

Perform a scanf on the window. The scanw function acts on the stdscr window.

Format

#include <curses.h>

int scanw (char *format_spec, ...);

int wscanw (WINDOW *win, char *format_spec, ...);


Arguments

win

A pointer to the window.

format_spec

A pointer to the format specification string.

...

Optional expressions that are pointers to objects whose resultant types correspond to conversion specifications given in the format specification. If no conversion specifications are given, you may omit these input pointers.

Otherwise, the function call must have at least as many input pointers as there are conversion specifications, and the conversion specifications must match the types of the input pointers.

Conversion specifications are matched to input sources in left-to-right order. Excess input pointers, if any, are ignored.


Description

The formatting specification (format_spec) and the other arguments are identical to those used with the scanf function.

The scanw and wscanw functions accept, format, and return a line of text from the terminal screen. For more information, see the scrollok and scanf functions in this section.


Return Values

OK Indicates success.
ERR Indicates that the function makes the screen scroll illegally or that the scan was unsuccessful.

scroll

Moves all the lines on the window up one line. The top line scrolls off the window and the bottom line becomes blank.

Format

#include <curses.h>

int scroll (WINDOW *win);


Argument

win

A pointer to the window.

Return Values

OK Indicates success.
ERR Indicates an error.

scrollok

Sets the scroll flag for the specified window.

Format

#include <curses.h>

scrollok (WINDOW *win, bool boolf);


Arguments

win

A pointer to the window.

boolf

A Boolean TRUE or FALSE value. If boolf is FALSE, scrolling is not allowed. This is the default setting. The bool type is defined in the <curses.h> header file as follows:


#define bool int 


seed48

Initializes a 48-bit random number generator.

Format

#include <stdlib.h>

unsigned short *seed48 (unsigned short seed_16v[3]);


Arguments

seed_16v

An array of three unsigned short int that form a 48-bit seed value.

Description

The seed48 function initializes the random number generator. You can use this function in your program before calling the drand48 , lrand48 , or mrand48 functions. (Although it is not recommended practice, constant default initializer values are supplied automatically if you call drand48 , lrand48 , or mrand48 without calling an initialization function).

The 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 > 0 

The 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 = 138

The initializer function seed48 :

  • Sets the value of Xi to the 48-bit value specified in the array pointed to by seed_16v.
  • Returns a pointer to a 48-bit internal buffer that contains the previous value of Xi, used only by seed48 .

The returned pointer allows you to restart the pseudorandom sequence at a given point. Use the pointer to copy the previous Xi value into a temporary array. To resume where the original sequence left off, you can call seed48 with a pointer to this array.

See also drand48 , lrand48 , and mrand48 in this section.


Return Values

x A pointer to a 48-bit internal buffer.

seekdir

Sets the position of a directory stream.

Format

#include <dirent.h>

void seekdir (DIR *dir_pointer, long int location);


Arguments

dir_pointer

A pointer to the dir structure of an open directory.

location

The number of an entry relative to the start of the directory.

Description

This function sets the position of the next readdir operation on the directory stream specified by dir_pointer to the position specified by location. The value of location should be returned from an earlier call to telldir.

If the value of location was not returned by a call to the telldir function, or if there was an intervening call to the rewinddir function on this directory stream, the effect is unspecified.

The type DIR , defined in the <dirent.h> header file, represents a directory stream. A directory stream is an ordered sequence of all the directory entries in a particular directory. Directory entries represent files. You can remove files from or add files to a directory asynchronously to the operation of the readdir function.

See readdir , rewinddir , and telldir in this section.


[w]setattr

Activate the video display attribute attr within the window. The setattr function acts on the stdscr window.

Format

#include <curses.h>

int setattr (int attr);

int wsetattr (WINDOW *win, int attr);


Arguments

win

A pointer to the window.

attr

One of a set of video display attributes, which are blinking, boldface, reverse video, and underlining, and are represented by the defined constants _BLINK, _BOLD, _REVERSE, and _UNDERLINE, respectively. You can set multiple attributes by separating them with a bitwise OR operator (|) as follows:


setattr(_BLINK | _UNDERLINE); 


Description

The setattr and wsetattr functions are specific to Compaq C for OpenVMS Systems and are not portable.

Return Values

OK Indicates success.
ERR Indicates an error.

setbuf

Associates a new buffer with an input or output file and potentially modifies the buffering behavior.

Format

#include <stdio.h>

void setbuf (FILE *file_ptr, char *buffer);


Arguments

file_ptr

A file pointer.

buffer

A pointer to a character array, or a NULL pointer.

Description

You can use this function after the specified file is opened but before any I/O operations are performed.

If buffer is a NULL pointer, then the call is equivalent to a call to setvbuf with the same file_ptr, a NULL buffer pointer, a buffering type of _IONBF (no buffering), and a buffer size of 0.

If buffer is not a NULL pointer, then the call is equivalent to a call to setvbuf with the same file_ptr, the same buffer pointer, a buffering type of _IOFBF, and a buffer size given by the value BUFSIZ (defined in <stdio.h> ). You should, therefore, use BUFSIZ to allocate the buffer argument used in the call to setbuf . For example:


#include <stdio.h> 
   .
   .
   .
char my_buf[BUFSIZ]; 
   .
   .
   .
setbuf(stdout, my_buf); 
   .
   .
   .

User programs must not depend on the contents of buffer once I/O has been performed on the stream. The Compaq C RTL might or might not use buffer for any given I/O operation.

The setbuf function originally allowed programmers to substitute larger buffers in place of the system default buffers in obsolete versions of UNIX. The large default buffer sizes in modern implementations of C make the use of this function unnecessary most of the time. The setbuf function is retained in the ANSI C standard for compatibility with old programs. New programs should use setvbuf instead, because it allows the programmer to bind the buffer size at run time instead of compile time, and it returns a testable result value.


setenv

Inserts or resets the environment variable name in the current environment list.

Format

#include <stdlib.h>

int setenv (const char *name, const char *value, int overwrite);


Arguments

name

A variable name in the environment variable list.

value

The value for the environment variable.

overwrite

A value of 0 or 1 indicating whether to reset the environment variable, if it exists.

Description

This function inserts or resets the environment variable name in the current environment list. If the variable name does not exist in the list, it is inserted with the value argument. If the variable does exist, the overwrite argument is tested. When the overwrite argument value is:
  • 0 (zero) -- then the variable is not reset.
  • 1 -- then the variable is reset to value.

Return Values

0 Indicates success.
--1 Indicates an error. errno is set to ENOMEM---Not enough memory available to expand the environment list.

setgid

With POSIX IDs disabled, implemented for program portability and serves no function. It returns 0 (to indicate success).

With POSIX IDs enabled, sets the group IDs.


Format

#include <types.h>

#include <unistd.h>

int setgid (__gid_t gid); (_DECC_V4_SOURCE)

gid_t setgid (gid_t gid); (NOT _DECC_V4_SOURCE)


Arguments

gid

The value to which you want the group IDs set.

Description

This function can be used with POSIX-style identifiers enabled or disabled.

Note

Currently, POSIX-style IDs are supported only by some OpenVMS versions done for specific government agencies, but will be integrated into future OpenVMS releases. OpenVMS Version 7.3-1 does not support POSIX-style IDs, but it does support 32-bit identifiers.

With POSIX IDs disabled (the default), the setgid function is implemented for program portability and serves no function. It returns 0 (to indicate success).

With POSIX-style IDs enabled:

  • If the process has the IMPERSONATE privilege, the setgid function sets the real group ID, effective group ID, and the saved set-group-ID to gid.
  • If the process does not have appropriate privileges but gid is equal to the real group ID or to the saved set-group-ID, then the setgid function sets the effective group ID to gid. The real group ID and saved set-group-ID remain unchanged.
  • Any supplementary group IDs of the calling process remain unchanged.

Return Values

0 Successful completion.
-1 Indicates an error. The function sets errno to one of the following values:
  • EINVAL -- The value of the gid argument is invalid and not supported by the implementation.
  • EPERM -- The process does not have appropriate privileges and gid does not match the real group ID or the saved set-group-ID.

setitimer

Sets the value of interval timers.

Format

#include <time.h>

int setitimer (int which, struct itimerval *value, struct itimerval *ovalue);


Arguments

which

The type of interval timer. The Compaq C RTL only supports ITIMER_REAL.

value

A pointer to an itimerval structure whose members specify a timer interval and the time left to the end of the interval.

ovalue

A pointer to an itimerval structure whose members specify a current timer interval and the time left to the end of the interval.

Description

This function sets the timer specified by which to the value specified by value, returning the previous value of the timer if ovalue is nonzero.

A timer value is defined by the itimerval structure:


       struct itimerval { 
               struct  timeval it_interval; 
               struct  timeval it_value; 
       }; 

The value of the itimerval structure members are: as follows
itimerval Member Value Meaning
it_interval = 0 Disables a timer after its next expiration (Assumes it_value is nonzero).
it_interval = nonzero Specifies a value used in reloading it_value when the timer expires.
it_value = 0 Disables a timer.
it_value = nonzero Indicates the time to the next timer expiration.

Time values smaller than the resolution of the system clock are rounded up to this resolution.

The getitimer function provides one interval timer, defined in the <time.h> header file as ITIMER_REAL. This timer decrements in real time. When the timer expires, it delivers a SIGALARM signal.

Note

The interaction between setitimer and any of alarm , sleep , or usleep is unspecified.

Return Values

0 Indicates success.
--1 An error occurred; errno is set to indicate the error.


Previous Next Contents Index
Buy Online or Call 1.800.888.0220      privacy statement and legal notices 
STORES CONTACT US SEARCH PRODUCTS SOLUTIONS OPTIONS DEVELOPERS