|
Compaq C
Compaq C Run-Time Library Reference Manual for
OpenVMS Systems
[w]standend
Deactivate the boldface attribute for the specified window. The
standend
function operates on the stdscr window.
Format
#include <curses.h>
int standend (void);
int wstandend (WINDOW *win);
Argument
win
A pointer to the window.
Description
The
standend
and
wstandend
functions are equivalent to
clrattr
and
wclrattr
called with the attribute _BOLD.
Return Values
OK
|
Indicates success.
|
ERR
|
Indicates an error.
|
[w]standout
Activate the boldface attribute of the specified window. The
standout
function acts on the
stdscr
window.
Format
#include <curses.h>
int standout (void);
int wstandout (WINDOW *win);
Argument
win
A pointer to the window.
Description
The
standout
and
wstandout
functions are equivalent to
setattr
and
wsetattr
called with the attribute _BOLD.
Return Values
OK
|
Indicates success.
|
ERR
|
Indicates an error.
|
stat
Accesses information about the specified file.
Format
#include <stat.h>
int stat (const char *file_spec, struct stat
*buffer); (ISO POSIX-1)
int stat (const char *file_spec, struct stat *buffer,
...); (COMPAQ C EXTENSION)
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
file_spec
A valid OpenVMS or UNIX style file specification (no wildcards). Read,
write, or execute permission of the named file is not required, but you
must be able to reach all directories listed in the file specification
leading to the file. For more information about UNIX style file
specifications, see Chapter 1.
buffer
A pointer to a structure of type
stat_t
that is defined in the
<stat.h>
header file.
The argument receives information about the particular file. The
members of the structure pointed to by buffer are described as
follows:
Member |
Type |
Definition |
st_dev
|
dev_t
|
Pointer to the physical device name
|
st_ino[3]
|
ino_t
|
Three words to receive the file ID
|
st_mode
|
mode_t
|
File "mode" (prot, dir,...)
|
st_nlink
|
nlink_t
|
For UNIX system compatibility only
|
st_uid
|
uid_t
|
Owner user ID
|
st_gid
|
gid_t
|
Group member: from st_uid
|
st_rdev
|
dev_t
|
UNIX system compatibility -- always 0
|
st_size
|
off_t
|
File size, in bytes
|
st_atime
|
time_t
|
File access time; always the same as st_mtime
|
st_mtime
|
time_t
|
Last modification time
|
st_ctime
|
time_t
|
File creation time
|
st_fab_rfm
|
char
|
Record format
|
st_fab_rat
|
char
|
Record attributes
|
st_fab_fsz
|
char
|
Fixed header size
|
st_fab_mrs
|
unsigned
|
Record size
|
The types
dev_t
,
ino_t
,
off_t
,
mode_t
,
nlink_t
,
uid_t
,
gid_t
, and
time_t
, are defined in the
<stat.h>
header file. However, when compiling for compatibility
(/DEFINE=_DECC_V4_SOURCE), only
dev_t
,
ino_t
, and
off_t
are defined.
The
off_t
data type is either a 32-bit integer or 64-bit integer. The 64-bit
interface allows for file sizes greater than 2 gigabytes, and can be
selected at compile time by defining the _LARGEFILE feature-test macro:
As of OpenVMS Version 7.0, times are given in seconds since the Epoch
(00:00:00 GMT, January 1, 1970).
The
st_mode
structure member is the status information mode defined in the
<stat.h>
header file. The
st_mode
bits are described as follows:
Bits |
Constant |
Definition |
0170000
|
S_IFMT
|
Type of file
|
0040000
|
S_IFDIR
|
Directory
|
0020000
|
S_IFCHR
|
Character special
|
0060000
|
S_IFBLK
|
Block special
|
0100000
|
S_IFREG
|
Regular
|
0030000
|
S_IFMPC
|
Multiplexed char special
|
0070000
|
S_IFMPB
|
Multiplexed block special
|
0004000
|
S_ISUID
|
Set user ID on execution
|
0002000
|
S_ISGID
|
Set group ID on execution
|
0001000
|
S_ISVTX
|
Save swapped text even after use
|
0000400
|
S_IREAD
|
Read permission, owner
|
0000200
|
S_IWRITE
|
Write permission, owner
|
0000100
|
S_IEXEC
|
Execute/search permission, owner
|
...
An optional default file-name string.
This is the only optional RMS keyword that can be specified for the
stat
function. See the description of the
creat
function for the full list of optional RMS keywords and their values.
Description
This function does not work on remote network files.
If the file is a record file, the
st_size
field includes carriage-control information. Consequently, the
st_size
value will not correspond to the number of characters that can be read
from the file.
The physical device name string referred to by the
st_dev
member of the
stat
structure is overwritten by the next
stat
call.
Note
(ALPHA ONLY)
On OpenVMS Alpha systems, the
stat
,
fstat
,
utime
, and
utimes
functions have been enhanced to take advantage of the new file-system
support for POSIX-compliant file timestamps.
This support is available only on ODS-5 devices on OpenVMS Alpha
systems beginning with a version of OpenVMS Alpha after Version 7.3.
Before this change, the
stat
and
fstat
functions were setting the values of the st_ctime, st_mtime, and
st_atime fields based on the following file attributes:
st_ctime - ATR$C_CREDATE (file creation time)
st_mtime - ATR$C_REVDATE (file revision time)
st_atime - was always set to st_mtime because no support for file
access time was available
Also, for the file-modification time,
utime
and
utimes
were modifying the ATR$C_REVDATE file attribute, and ignoring the
file-access-time argument.
After the change, for a file on an ODS-5 device, the
stat
and
fstat
functions set the values of the st_ctime, st_mtime, and st_atime fields
based on the following new file attributes:
st_ctime - ATR$C_ATTDATE (last attribute modification time)
st_mtime - ATR$C_MODDATE (last data modification time)
st_atime - ATR$C_ACCDATE (last access time)
If ATR$C_ACCDATE is zero, as on an ODS-2 device, the
stat
and
fstat
functions set st_atime to st_mtime.
For the file-modification time, the
utime
and
utimes
functions modify both the ATR$C_REVDATE and ATR$C_MODDATE file
attributes. For the file-access time, these functions modify the
ATR$C_ACCDATE file attribute. Setting the ATR$C_MODDATE and
ATR$C_ACCDATE file attributes on an ODS-2 device has no effect.
For compatibility, the old behavior of
stat
,
fstat
,
utime
and
utimes
remains the default, regardless of the kind of device.
The new behavior must be explicitly enabled by defining the
DECC$EFS_FILE_TIMESTAMPS logical name to "ENABLE" before invoking the
application. Setting this logical does not affect the behavior of
stat
,
fstat
,
utime
and
utimes
for files on an ODS-2 device.
|
Return Values
0
|
Indicates success.
|
--1
|
Indicates an error other than a privilege violation;
errno
is set to indicate the error.
|
--2
|
Indicates a privilege violation.
|
strcasecmp
Does a case-insensitive comparison of two 7-bit ASCII strings.
Format
#include <strings.h>
int strcasecmp (const char *s1, const char *s2);
Arguments
s1
The first of two strings to compare.
s2
The second of two strings to compare.
Description
This function is case-insensitive. The returned lexicographic
difference reflects a conversion to lowercase.
The
strcasecmp
function works for 7-bit ASCII compares only. Do not use this function
for internationalized applications.
Return Values
n
|
An integer value greater than, equal to, or less than 0 (zero),
depending on whether the
s1 string is greater than, equal to, or less than the
s2 string.
|
strcat
Concatenates str_2, including the terminating null character,
to the end of str_1.
Format
#include <string.h>
char *strcat (char *str_1, const char *str_2);
Function Variants This function also has variants named
_strcat32
and
_strcat64
for use with 32-bit and 64-bit pointer sizes, respectively. See
Section 1.10 for more information on using pointer-size-specific
functions.
Arguments
str_1, str_2
Pointers to null-terminated character strings.
Description
See also
strncat
in this section.
Return Value
x
|
The address of the first argument,
str_1, which is assumed to be large enough to hold the
concatenated result.
|
Example
#include <string.h>
#include <stdio.h>
/* This program concatenates two strings using the strcat */
/* function, and then manually compares the result of strcat */
/* to the expected result. */
#define S1LENGTH 10
#define S2LENGTH 8
main()
{
static char s1buf[S1LENGTH + S2LENGTH] = "abcmnexyz";
static char s2buf[] = " orthis";
static char test1[] = "abcmnexyz orthis";
int i;
char *status;
/* Take static buffer s1buf, concatenate static buffer */
/* s2buf to it, and compare the answer in s1buf with the */
/* static answer in test1. */
status = strcat(s1buf, s2buf);
for (i = 0; i <= S1LENGTH + S2LENGTH - 2; i++) {
/* Check for correct returned string. */
if (test1[i] != s1buf[i])
printf("error in strcat");
}
}
|
strchr
Returns the address of the first occurrence of a given character in a
null-terminated string. The terminating null character is considered to
be part of the string.
Format
#include <string.h>
char *strchr (const char *str, int character);
Function Variants This function also has variants named
_strchr32
and
_strchr64
for use with 32-bit and 64-bit pointer sizes, respectively. See
Section 1.10 for more information on using pointer-size-specific
functions.
Arguments
str
A pointer to a null-terminated character string.
character
An object of type
int
.
Description
See also
strrchr
in this section.
Return Values
x
|
The address of the first occurrence of the specified character.
|
NULL
|
Indicates that the character does not occur in the string.
|
Example
#include <stdio.h>
#include <string.h>
main()
{
static char s1buf[] = "abcdefghijkl lkjihgfedcba";
int i;
char *status;
/* This program checks the strchr function by incrementally */
/* going through a string that ascends to the middle and then */
/* descends towards the end. */
for (i = 0; s1buf[i] != '\0' && s1buf[i] != ' '; i++) {
status = strchr(s1buf, s1buf[i]);
/* Check for pointer to leftmost character - test 1. */
if (status != &s1buf[i])
printf("error in strchr");
}
}
|
strcmp
Compares two ASCII character strings and returns a negative, 0, or
positive integer, indicating that the ASCII values of the individual
characters in the first string are less than, equal to, or greater than
the values in the second string.
Format
#include <string.h>
int strcmp (const char *str_1, const char *str_2);
Arguments
str_1, str_2
Pointers to character strings.
Description
The strings are compared until a null character is encountered or until
the strings differ.
Return Values
< 0
|
Indicates that
str_1 is less than
str_2.
|
= 0
|
Indicates that
str_1 equals
str_2.
|
> 0
|
Indicates that
str_1 is greater than
str_2.
|
strcoll
Compares two strings and returns an integer that indicates if the
strings differ and how they differ. The function uses the collating
information in the LC_COLLATE category of the current locale to
determine how the comparison is performed.
Format
#include <string.h>
int strcoll (const char *s1, const char *s2);
Arguments
s1, s2
Pointers to character strings.
Description
This function, unlike
strcmp
, compares two strings in a locale-dependent manner. Because no value
is reserved for error indication, the application must check for one by
setting
errno
to 0 before the function call and testing it after the call.
See also the
strxfrm
function is this section.
Return Values
< 0
|
Indicates that
s1 is less than
s2.
|
= 0
|
Indicates that the strings are equal.
|
> 0
|
Indicates that
s1 is greater than
s2.
|
strcpy
Copies all of source, including the terminating null
character, into dest.
Format
#include <string.h>
char *strcpy (char *dest, const char *source);
Function Variants This function also has variants named
_strcpy32
and
_strcpy64
for use with 32-bit and 64-bit pointer sizes, respectively. See
Section 1.10 for more information on using pointer-size-specific
functions.
Arguments
dest
Pointer to the destination character string.
source
Pointer to the source character string.
Description
This function copies source into dest, and stops
after copying source's null character.
The behavior of this function is undefined if the area pointed to by
dest overlaps the area pointed to by source.
Return Value
strcspn
Returns the length of the prefix of a string that consists entirely of
characters not in a specified set of characters.
Format
#include <string.h>
size_t strcspn (const char *str, const char *charset);
Arguments
str
A pointer to a character string. If this character string is a null
string, 0 is returned.
charset
A pointer to a character string containing the set of characters.
Description
This function scans the characters in the string, stops when it
encounters a character found in charset, and returns the
length of the string's initial segment formed by characters not found
in charset.
If none of the characters match in the character strings pointed to by
str and charset,
strcspn
returns the length of string.
Return Value
x
|
The length of the segment.
|
|
|
|