Previous | Contents | Index |
Generates uniformly distributed pseudorandom-number sequences. Returns 48-bit signed long integers.
#include <stdlib.h>long int mrand48 (void);
The mrand48 function generates pseudorandom numbers using the linear congruential algorithm and 48-bit integer arithmetic.It returns signed long integers uniformly distributed over the range of y values such that -231 <= y < 231 .
Before you call the mrand48 function, use either srand48 , seed48 , or lcong48 to initialize the random-number generator. You must initialize the mrand48 function prior to invoking it, because it stores the last 48-bit Xi generated into an internal buffer. (Although it is not recommended, constant default initializer values are supplied automatically if the drand48 , lrand48 , or mrand48 functions are called without first 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 >= 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 values returned by the mrand48 function is computed by first generating the next 48-bit Xi in the sequence. Then the appropriate bits, according to the type of returned data item, are copied from the high-order (most significant) bits of Xi and transformed into the returned value.
See also drand48 , lrand48 , lcong48 , seed48 , and srand48 .
n Returns signed long integers uniformly distributed over the range -2 31 <= y < 2 31 .
Synchronizes a mapped file.
#include <mman.h>int msync (void *addr, size_t len, int flags);
addr
The address of the region that you want to synchronize.len
The length, in bytes, of the region that you want to synchronize.flags
One of the following symbolic constants defined in the <mman.h> header file:
MS_SYNC Synchronous cache flush MS_ASYNC Asynchronous cache flush MS_INVALIDATE Invalidate cashed pages
The msync function controls the caching operations of a mapped file region. Use msync to:
- Ensure that modified pages in the region transfer to the underlying storage device of the file.
- Control the visibility of modifications with respect to file system operations.
The addr and len arguments specify the region to be synchronized. The len argument must be a multiple of the page size as returned by sysconf(_SC_PAGE_SIZE) ; otherwise, the length of the region is rounded up to the next multiple of the page size.
If the flags argument is set to:
flags Argument Then the msync Function... MS_SYNC Does not return until the system completes all I/O operations. MS_ASYNC Returns after the system schedules all I/O operations. MS_INVALIDATE Invalidates all cached copies of the pages. The operating system must obtain new copies of the pages from the file system the next time the application references them. After a successful call to the msync function with the flags argument set to:
- MS_SYNC -- All previous modifications to the mapped region are visible to processes using the read argument. Previous modifications to the file using the write function are lost.
- MS_INVALIDATE -- All previous modifications to the file using the write function are visible to the mapped region. Previous direct modifications to the mapped region are lost.
See also read , write , and sysconf .
0 Indicates success. - 1 Indicates an error; errno is set to one of the following values:
- EIO -- An I/O error occurred while reading from or writing to the file system.
- ENOMEM -- The range specified by [ addr, addr + len] is invalid for a process's address space, or the range specifies one or more unmapped pages.
- EINVAL -- The addr argument is not a multiple of the page size as returned by sysconf(_SC_PAGE_SIZE) .
- EFAULT -- The range [ addr, addr + len] includes an invalid address.
Unmaps a mapped region. This function is reentrant.
#include <mman.h>int munmap (void *addr, size_t len);
addr
The address of the region that you want to unmap.len
The length, in bytes, of that region the you want to unmap.
The munmap function unmaps a mapped file or shared memory region.The addr and len arguments specify the address and length, in bytes, respectively, of the region to be unmapped.
The len argument must be a multiple of the page size as returned by sysconf(_SC_PAGE_SIZE) ; otherwise, the length of the region is rounded up to the next multiple of the page size.
The result of using an address that lies in an unmapped region and not in any subsequently mapped region is undefined.
See also sysconf .
0 Indicates success. - 1 Indicates an error; errno is set to one of the following values:
- ENIVAL -- The addr argument is not a multiple of the page size as returned by sysconf(_SC_PAGE_SIZE) .
- EFAULT -- The range [ addr, addr + len] includes an invalid address.
Move the cursor to coordinates (y,x) and add a character to the specified window.
#include <curses.h>int mvaddch (int y, int x, char ch);
int mvwaddch (WINDOW *win, int y, int x, char ch);
win
A pointer to the window.y
A window coordinate.x
A window coordinate.ch
If this argument is a new-line character (\n), the mvaddch and mvwaddch functions clear the line to the end, and move the cursor to the next line at the same x coordinate. A carriage return (\r) moves the cursor to the beginning of the specified line. A tab (\t) moves the cursor to the next tabstop within the window.
This routine performs the same function as mvwaddch , but on the stdscr window.When mvwaddch is used on a subwindow, it writes the character onto the underlying window as well.
OK Indicates success. ERR Indicates that writing the character would cause the screen to scroll illegally. For more information, see the scrollok function.
Move the cursor to coordinates (y,x) and add the specified string, to which str points, to the specified window.
#include <curses.h>int mvaddstr (int y, int x, char *str);
int mvwaddstr (WINDOW *win, int y, int x, char *str);
win
A pointer to the window.y
A window coordinate.x
A window coordinate.str
A pointer to the character string.
This routine performs the same function as mvwaddstr , but on the stdscr window.When mvwaddstr is used on a subwindow, the string is written onto the underlying window as well.
OK Indicates success. ERR Indicates that the function causes the screen to scroll illegally, but it places as much of the string onto the window as possible. For more information, see the scrollok function.
Moves the terminal's cursor from (lasty,lastx) to (newy,newx).
#include <curses.h>int mvcur (int lasty, int lastx, int newy, int newx);
lasty
The cursor position.lastx
The cursor position.newy
The resulting cursor position.newx
The resulting cursor position.
In HP C for OpenVMS Systems, mvcur and move perform the same function.See also move .
OK Indicates success. ERR Indicates that moving the window placed part or all of the window off the edge of the terminal screen. The terminal screen remains unaltered.
Move the cursor to coordinates (y,x) and delete the character on the specified window. The mvdelch function acts on the stdscr window.
#include <curses.h>int mvdelch (int y, int x);
int mvwdelch (WINDOW *win, int y, int x);
win
A pointer to the window.y
A window coordinate.x
A window coordinate.
Each of the following characters on the same line shifts to the left, and the last character becomes blank.
OK Indicates success. ERR Indicates that deleting the character would cause the screen to scroll illegally. For more information, see the scrollok function.
Move the cursor to coordinates (y,x), get a character from the terminal screen, and echo it on the specified window. The mvgetch function acts on the stdscr window.
#include <curses.h>int mvgetch (int y, int x);
int mvwgetch (WINDOW *win, int y, int x);
win
A pointer to the window.y
A window coordinate.x
A window coordinate.
The mvgetch and mvwgetch functions refresh the specified window before fetching the character.
x The returned character. ERR Indicates that the function causes the screen to scroll illegally. For more information, see the scrollok function in this section.
Move the cursor to coordinates (y,x), get a string from the terminal screen, store it in the variable str (which must be large enough to contain the string), and echo it on the specified window. The mvgetstr function acts on the stdscr window.
#include <curses.h>int mvgetstr (int y, int x, char *str);
int mvwgetstr (WINDOW *win, int y, int x, char *str);
win
A pointer to the window.y
A window coordinate.x
A window coordinate.str
The string that is displayed.
The mvgetstr and mvwgetstr functions strip the new-line terminator (\n) from the string.
OK Indicates success. ERR Indicates that the function causes the screen to scroll illegally.
Move the cursor to coordinates (y,x) and return the character on the specified window without making changes to the window. The mvinch function acts on the stdscr window.
#include <curses.h>int mvinch (int y, int x);
int mvwinch (WINDOW *win, int y, int x);
win
A pointer to the window.y
A window coordinate.x
A window coordinate.
x The returned character. ERR Indicates an input error.
Move the cursor to coordinates (y,x) and insert the character ch into the specified window. The mvinsch function acts on the stdscr window.
#include <curses.h>int mvinsch (int y, int x, char ch);
int mvwinsch (WINDOW *win, int y, int x, char ch);
win
A pointer to the window.y
A window coordinate.x
A window coordinate.ch
The character to be inserted at the window's coordinates.
After the character is inserted, each character on the line shifts to the right, and the last character on the line is deleted.
OK Indicates success. ERR Indicates that the function makes the screen scroll illegally. For more information, see the scrollok function in this section.
Move the cursor to coordinates (y,x) and insert the specified string into the specified window. The mvinsstr function acts on the stdscr window.
#include <curses.h>int mvinsstr (int y, int x, char *str);
int mvwinsstr (WINDOW *win, int y, int x, char *str);
win
A pointer to the window.y
A window coordinate.x
A window coordinate.str
The string that is displayed.
Each character after the string shifts to the right, and the last character disappears. The mvinsstr and mvwinsstr functions are specific to HP C for OpenVMS Systems and are not portable.
OK Indicates success. ERR Indicates that the function makes the screen scroll illegally. For more information, see the scrollok function.
Moves the starting position of the window to the specified (y,x) coordinates.
#include <curses.h>mvwin (WINDOW *win, int y, int x);
win
A pointer to the window.y
A window coordinate.x
A window coordinate.
When moving subwindows, the mvwin function does not rewrite the contents of the subwindow on the underlying window at the new position. If you write anything to the subwindow after the move, the function also writes to the underlying window.
OK Indicates success. ERR Indicates that moving the window put part or all of the window off the edge of the terminal screen. The terminal screen remains unaltered.
High-resolution sleep (REALTIME). Suspends a process (or thread in a threaded program) from execution for the specified timer interval.
#include <time.h>int nanosleep (const struct timespec *rqtp, struct timespec *rmtp);
rqtp
A pointer to the timespec data structure that defines the time interval during which the calling process or thread is suspended.rmtp
A pointer to the timespec data structure that receives the amount of time remaining in the previously requested interval, or zero if the full interval has elapsed.
The nanosleep function suspends a process or thread until one of the following conditions is met:
- The time interval specified by the rqtp argument has elapsed.
- A signal is delivered to the calling process and the action is to invoke a signal-catching function or to terminate the process.
The suspension time may be longer than requested because the argument value is rounded up to an integer multiple of the sleep resolution or because of the scheduling of other activity by the system. Except when interrupted by a signal, the suspension time is not less than the time specified by the rqtp argument (as measured by the system clock, CLOCK_REALTIME).
The use of the nanosleep function has no effect on the action or blockage of any signal.
If the requested time has elapsed, the call was successful and the nanosleep function returns zero.
On failure, the nanosleep function returns - 1 and sets errno to indicate the failure. The function fails if it has been interrupted by a signal, or if the rqtp argument specified a nanosecond value less than 0 or greater than or equal to 1 billion.
If the rmtp argument is non-NULL, the timespec structure it references is updated to contain the amount of time remaining in the interval (the requested time minus the time actually slept).
If the rmtp argument is NULL, the remaining time is not returned.
See also clock_getres , clock_gettime , clock_settime , and sleep .
0 Indicates success. The requested time has elapsed. - 1 Indicates failure. The function call was unsuccessful or was interrupted by a signal; errno is set to one of the following values:
- EINTR -- The nanosleep function was interrupted by a signal.
- EINVAL -- The rqtp argument specified a nanosecond value less than 0 or greater than or equal to 1 billion.
Previous | Next | Contents | Index |