United States |
|
|
||
memchr
Locates the first occurrence of the specified byte within the initial size bytes of a given object. Format#include <string.h>Function Variants This function also has variants named _memchr32 and _memchr64 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
DescriptionUnlike strchr , the memchr function does not stop when it encounters a null character. Return Values
memcmp
Compares two objects, byte by byte. The compare operation starts with the first byte in each object. Format#include <string.h> Arguments
DescriptionThis function uses native byte comparison. The sign of the value returned is determined by the sign of the difference between the values of the first pair of unlike bytes in the objects being compared. Unlike the strcmp function, the memcmp function does not stop when a null character is encountered. Return Value
memcpy
Copies a specified number of bytes from one object to another. Format#include <string.h>Function Variants This function also has variants named _memcpy32 and _memcpy64 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
DescriptionThis function copies size bytes from the object pointed to by source to the object pointed to by dest; it does not check for the overflow of the receiving memory area (dest). Unlike the strcpy function, the memcpy function does not stop when a null character is encountered. Return Value
memmove
Copies a specified number of bytes from one object to another. Format#include <string.h>Function Variants This function also has variants named _memmove32 and _memmove64 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
DescriptionIn Compaq C for OpenVMS Systems, memmove and memcpy perform the same function. Programs that require portability should use memmove if the area pointed at by dest could overlap the area pointed at by source. Return Value
Example
memset
Sets a specified number of bytes in a given object to a given value. Format#include <string.h>Function Variants This function also has variants named _memset32 and _memset64 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
DescriptionThis function copies value (converted to an unsigned char ) into each of the first size characters of the object pointed to by s. Return Value
mkdir
Creates a directory. Format#include <stat.h> Arguments
DescriptionIf dir_spec specifies a path that includes directories, which do not exist, intermediate directories are also created. This differs from the behavior of the UNIX system where these intermediate directories must exist and will not be created. Return Values
|
#1 |
---|
umask (0002); /* turn world write access off */ mkdir ("sys$disk:[.parentdir.childdir]", 0222); /* turn write access on */ Parent directory file protection: System:RWD, Owner:RWD, Group:R, World:R |
The file protection derived from the combination of the mode argument and the file protection mask set by umask is (0222) & ~(0002), which is 0220. When the parent directory defaults are applied to this protection, the protection for the new directory becomes:
File protection: System:RWD, Owner:RWD, Group:RWD, World:R
#2 |
---|
umask (0000); mkdir ("sys$disk:[.parentdir.childdir]", 0444); /* turn read access on */ Parent directory file protection: System:RWD, Owner:RWD, Group:RWD, World:RWD |
The file protection derived from the combination of the mode argument and the file protection mask set by umask is (0444) & ~(0000) which is 0444. When the parent directory defaults are applied to this protection, the protection for the new directory is:
File protection: System:RW, Owner:RW, Group:RW, World:RWNote that delete access is not inherited.
Constructs a unique filename.
#include <stdlib.h>int mkstemp (char *template);
template
A pointer to a string that is replaced with a unique filename. The string in the template argument must be a filename with six trailing Xs.
This function replaces the six trailing Xs of the string pointed to by template with a unique set of characters, and returns a file descriptor for the file open for reading and writing.The string pointed to by template should look like a file name with six trailing X's. The mkstemp function replaces each X with a character from the portable file-name character set, making sure not to duplicate an existing file name.
If the string pointed to by template does not contain six trailing Xs, --1 is returned.
x An open file descriptor. --1 Indicates an error. (The string pointed to by template does not contain six trailing Xs.)
Creates a unique file name from a template.
#include <stdlib.h>Function Variants This function also has variants named _mktemp32 and _mktemp64 for use with 32-bit and 64-bit pointer sizes, respectively. See Section 1.10 for more information on using pointer-size-specific functions.char *mktemp (char *template);
template
A pointer to a buffer containing a user-defined template. You supply the template in the form, namXXXXXX. The six trailing Xs are replaced by a unique series of characters. You may supply the first three characters. Because the template argument is overwritten, do not specify a string literal ( const object).
The use of mktemp is not recommended for new applications. See the tmpnam and mkstemp functions for the preferable alternatives.
x A pointer to the template, with the template modified to contain the created file name. If this value is a pointer to a null string, it indicates that a unique file name cannot be created.
Converts a local-time structure into time since the Epoch.
#include <time.h>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.time_t mktime (struct tm *timeptr);
timeptr
A pointer to the local time structure.
This function converts the local-time structure, pointed to by timeptr, to a time in seconds since the Epoch in the same manner as the values returned by the time function. If the local time cannot be encoded, then mktime returns the value ( time_t )(--1).The time_t type is defined in the <time.h> header file as follows:
typedef unsigned long int time_t;Local time-zone information is set as if mktime called tzset .
If the tm_isdst field in the local-time structure pointed to by timeptr is positive, mktime initially presumes that Daylight Savings Time (DST) is in effect for the specified time.
If tm_isdst is 0, mktime initially presumes that DST is not in effect.
If tm_isdst is negative, mktime attempts to determine whether or not DST is in effect for the specified time.
x The specified calendar time encoded as a value of type time_t . ( time_t )(--1) If the local time cannot be encoded. Be aware that a return value of ( time_t )(--1) can also represent the valid date: Sun Feb 7 06:28:15 2106.
Maps file system object into virtual memory.
#include <types.h>Function Variants This function also has variants named _mmap32 and _mmap64 for use with 32-bit and 64-bit pointer sizes, respectively. See Section 1.10 for more information on using pointer-size-specific functions.#include <mman.h>
void mmap (void *addr, size_t len, int prot, int flags, int filedes, off_t off); (X/OPEN, POSIX-1)
void mmap (void *addr, size_t len, int prot, int flags, int filedes, off_t off ...); (COMPAQ C EXTENSION)
addr
The starting address of the new region (truncated to a page boundary).len
The length in bytes of the new region (rounded up to a page boundary).prot
Access permission, as defined in the <mman.h> header file. Specify either PROT_NONE, PROT_READ, or PROT_WRITE.flags
Attributes of the mapped region as the results of a bitwise-inclusive OR operation on any combination of the following:
- MAP_FILE or MAP_ANONYMOUS
- MAP_VARIABLE or MAP_FIXED
- MAP_SHARED or MAP_PRIVATE
filedes
The file that you want to map to the new mapped file region returned by the open function.off
The offset, specified in bytes. The off_t data type is either a 64-bit integer or a 32-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:
CC/DEFINE=_LARGEFILE...
An optional integer specifying additional flags for the SYS$CRMPSC system service for MAP_SHARED. This optional argument (Compaq C Extension) of the mmap function was introduced in OpenVMS Version 7.2.
This function creates a new mapped file region, a new private region, or a new shared memory region.Your application must ensure correct synchronization when using mmap in conjunction with any other file access method, such as read and write , and standard input/output.
Before calling mmap , the calling application must also ensure that all bytes in the range [off, off+len] are written to the file (using the fsync function, for example). If this requirement is not met, mmap fails with errno set to ENXIO (No such device or address).
The addr and len arguments specify the requested starting address and length in bytes for the new region. The address is a multiple of the page size returned by sysconf(_SC_PAGE_SIZE) .
If the len argument is not a multiple of the page size returned by sysconf(_SC_PAGE_SIZE) , then the result of any reference to an address between the end of the region and the end of the page containing the end of the region is undefined.
The flags argument specifies attributes of the mapped region. Values for flags are constructed by a bitwise-inclusive OR operation on the flags from the following list of symbolic names defined in the <mman.h> header file:
MAP_FILE Create a mapped file region. MAP_ANONYMOUS Create an unnamed memory region. MAP_VARIABLE Place region at the computed address. MAP_FIXED Place region at fixed address. MAP_SHARED Share changes. MAP_PRIVATE Changes are private. The MAP_FILE and MAP_ANONYMOUS flags control whether the region you want to map is a mapped file region or an anonymous shared memory region. One of these flags must be selected.
If MAP_FILE is set in the flags argument:
- A new mapped file region is created, mapping the file associated with the filedes argument.
- The off argument specifies the file byte offset where the mapping starts. This offset must be a multiple of the page size returned by sysconf(_SC_PAGE_SIZE) .
- If the end of the mapped file region is beyond the end of the file, the result of any reference to an address in the mapped file region corresponding to an offset beyond the end of the file is unspecified.
If MAP_ANONYMOUS is set in the flags argument:
- A new memory region is created and initialized to all zeros.
- If the filedes argument is not --1, the mmap function fails.
The new region is placed at the requested address if the requested address is not null and it is possible to place the region at this address. When the requested address is null or the region cannot be placed at the requested address, the MAP_VARIABLE and MAP_FIXED flags control the placement of the region. One of these flags must be selected.
If MAP_VARIABLE is set in the flags argument:
- If the requested address is null or if it is not possible for the system to place the region at the requested address, the region is placed at an address selected by the system.
If MAP_FIXED is set in the flags argument:
- If the requested address is not null, the mmap function succeeds even if the requested address is already part of another region. (If the address is within an existing region, the effect on the pages within that region and within the area of the overlap produced by the two regions is the same as if they were unmapped. In other words, whatever is mapped between addr and addr + len is unmapped.)
- If the requested address is null and MAP_FIXED is specified, the results are undefined.
The MAP_PRIVATE and MAP_SHARED flags control the visibility of modifications to the mapped file or shared memory region. One of these flags must be selected.
If MAP_SHARED is set in the flags argument:
- If the region is a mapped region, modifications to the region are visible to other processes that mapped the same region using MAP_SHARED.
- If the region is a mapped file region, modifications to the region are written to the file. (Note that the modifications are not immediately written to the file because of buffer cache delay; that is, the write to the file does not occur until there is a need to reuse the buffer cache. If the modifications must be written to the file immediately, use the msync function to ensure that this is done.)
Previous Next Contents Index
privacy statement and legal notices |