United States |
Previous | Contents | Index |
Perform a scanf on the window. The scanw function acts on the stdscr window.
#include <curses.h>int scanw (char *format_spec, ...);
int wscanw (WINDOW *win, char *format_spec, ...);
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.
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.
OK Indicates success. ERR Indicates that the function makes the screen scroll illegally or that the scan was unsuccessful.
Moves all the lines on the window up one line. The top line scrolls off the window and the bottom line becomes blank.
#include <curses.h>int scroll (WINDOW *win);
win
A pointer to the window.
OK Indicates success. ERR Indicates an error.
Sets the scroll flag for the specified window.
#include <curses.h>scrollok (WINDOW *win, bool boolf);
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
Initializes a 48-bit random number generator.
#include <stdlib.h>unsigned short *seed48 (unsigned short seed_16v[3]);
seed_16v
An array of three unsigned short int that form a 48-bit seed value.
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 > 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 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.
x A pointer to a 48-bit internal buffer.
Sets the position of a directory stream.
#include <dirent.h>void seekdir (DIR *dir_pointer, long int location);
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.
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.
Activate the video display attribute attr within the window. The setattr function acts on the stdscr window.
#include <curses.h>int setattr (int attr);
int wsetattr (WINDOW *win, int attr);
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);
The setattr and wsetattr functions are specific to Compaq C for OpenVMS Systems and are not portable.
OK Indicates success. ERR Indicates an error.
Associates a new buffer with an input or output file and potentially modifies the buffering behavior.
#include <stdio.h>void setbuf (FILE *file_ptr, char *buffer);
file_ptr
A file pointer.buffer
A pointer to a character array, or a NULL pointer.
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.
Inserts or resets the environment variable name in the current environment list.
#include <stdlib.h>int setenv (const char *name, const char *value, int overwrite);
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.
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.
0 Indicates success. --1 Indicates an error. errno is set to ENOMEM---Not enough memory available to expand the environment list.
Implemented for program portability and serves no function. It returns 0 (to indicate success).
#include <unistd.h>int setgid (__gid_t group_number); (_DECC_V4_SOURCE)
gid_t setgid (gid_t group_number); (NOT _DECC_V4_SOURCE)
group_number
The group number.
Sets the value of interval timers.
#include <time.h>int setitimer (int which, struct itimerval *value, struct itimerval *ovalue);
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.
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.
0 Indicates success. --1 An error occurred; errno is set to indicate the error.
Provides a way to transfer control from a nested series of function invocations back to a predefined point without returning normally. It does not use a series of return statements. The setjmp function saves the context of the calling function in an environment buffer.
#include <setjmp.h>int setjmp (jmp_buf env);
env
The environment buffer, which must be an array of integers long enough to hold the register context of the calling function. The type jmp_buf is defined in the <setjmp.h> header file. The contents of the general-purpose registers, including the program counter (PC), are stored in the buffer.
When setjmp is first called, it returns the value 0. If longjmp is then called, naming the same environment as the call to setjmp , control is returned to the setjmp call as if it had returned normally a second time. The return value of setjmp in this second return is the value supplied by you in the longjmp call. To preserve the true value of setjmp , the function calling setjmp must not be called again until the associated longjmp is called.The setjmp function preserves the hardware general purpose registers, and the longjmp function restores them. After a longjmp , all variables have their values as of the time of the longjmp except for local automatic variables not marked volatile . These variables have indeterminate values.
The setjmp and longjmp functions rely on the OpenVMS condition-handling facility to effect a nonlocal goto with a signal handler. The longjmp function is implemented by generating a Compaq C RTL specified signal that allows the OpenVMS condition-handling facility to unwind back to the desired destination.
The Compaq C RTL must be in control of signal handling for any Compaq C image. For Compaq C to be in control of signal handling, you must establish all exception handlers through a call to the vaxc$establish function. See Section 4.2.5 and the vaxc$establish function in this section for more information.
Note
There are Alpha specific, non-standard decc$setjmp and decc$fast_longjmp functions. To use these non-standard functions instead of the standard ones, a program must be compiled with __FAST_SETJMP or __UNIX_SETJMP macros defined.
Unlike the standard longjmp function, the decc$fast_longjmp function does not convert its second argument from 0 to 1. After a call to decc$fast_longjmp , a corresponding setjmp function returns with the exact value of the second argument specified in the decc$fast_longjmp call.
You cannot invoke the longjmp function from an OpenVMS condition handler. However, you may invoke longjmp from a signal handler that has been established for any signal supported by the Compaq C RTL, subject to the following nesting restrictions:
- The longjmp function will not work if you invoke it from nested signal handlers. The result of the longjmp function, when invoked from a signal handler that has been entered as a result of an exception generated in another signal handler, is undefined.
- Do not invoke the setjmp function from a signal handler unless the associated longjmp is to be issued before the handling of that signal is completed.
- Do not invoke the longjmp function from within an exit handler (established with atexit or SYS$DCLEXH). Exit handlers are invoked after image tear-down, so the destination address of the longjmp no longer exists.
- Invoking longjmp from within a signal handler to return to the main thread of execution might leave your program in an inconsistent state. Possible side effects include the inability to perform I/O or to receive any more UNIX signals. Use siglongjmp instead.
See the Description section.
Selects the appropriate portion of the program's locale as specified by the category and locale arguments. You can use this function to change or query one category or the program's entire current locale.
#include <locale.h>char *setlocale (int category, const char *locale);
category
The name of the category. Specify LC_ALL to change or query the entire locale. Other valid category names are:
- LC_COLLATE
- LC_CTYPE
- LC_MESSAGES
- LC_MONETARY
- LC_NUMERIC
- LC_TIME
locale
Pointer to a string that specifies the locale.
This function sets or queries the appropriate portion of the program's locale as specified by the category and locale arguments. Specifying LC_ALL for the category argument names the entire locale; specifying the other values name only a portion of the program's locale.The locale argument points to a character string that identifies the locale to be used. This argument can be one of the following:
- Name of the public locale
Specifies the public locale in the following format:
language_country.codeset[@modifier]
The function searches for the public locale binary file in the location defined by the logical name SYS$I18N_LOCALE. The file type defaults to .LOCALE. The period (.) and at-sign (@) characters in the name are replaced by an underscore (_).
For example:
If the specified name is "zh_CN.dechanzi@radical", the function searches for the SYS$I18N_LOCALE:ZH_CN_DECHANZI_RADICAL.LOCALE binary locale file.- A file specification
Specifies the binary locale file. It can be any valid file specification. If either the device or directory is omitted, the function first applies the current caller's device and directory as defaults for any missing component. If the file not found, the function applies the device and directory defined by the SYS$I18N_LOCALE logical name as defaults. The file type defaults to .LOCALE.
No wildcards are allowed. The binary locale file cannot reside on a remote node.- "C"
Specifies the C locale. If a program does not call setlocale , the C locale is the default.- "POSIX"
This is the same as the C locale.- ""
Specifies that the locale is initialized from the setting of the international environment logical names. The function checks the following logical names in the order shown until it finds a logical that is defined:
- LC_ALL
- Logical names corresponding to the category. For example, if LC_NUMERIC is specified as the category, then the first logical name that setlocale checks is LC_NUMERIC.
- LANG
- SYS$LC_ALL
- The system default for the category, which is defined by the SYS$LC_* logical names. For example, the default for the LC_NUMERIC category is defined by the SYS$LC_NUMERIC logical name.
- SYS$LANG
If none of the logical names is defined, the C locale is used as the default. The SYS$LC_* logical names are set up at the system startup time.
Like the locale argument, the equivalence name of the international environment logical name can be either the name of the public locale or the file specification. The setlocale function treats this equivalence name as if it were specified as the locale argument.- NULL
Causes setlocale to query the current locale. The function returns a pointer to a string describing the portion of the program's locale associated with category. Specifying the LC_ALL category returns the string describing the entire locale. The locale is not changed.- The string returned from the previous call to setlocale
Causes the function to restore the portion of the program's locale associated with category. If the string contains the description of the entire locale, the part of the string corresponding to category is used. If the string describes the portion of the program's locale for a single category, this locale is used. For example, this means that you can use the string returned from the call setlocale with the LC_COLLATE category to set the same locale for the LC_MESSAGES category.
If the specified locale is available, then setlocale returns a pointer to the string that describes the portion of the program's locale associated with category. For the LC_ALL category, the returned string describes the entire program's locale. If an error occurs, a NULL pointer is returned and the program's locale is not changed.
Subsequent calls to setlocale overwrite the returned string. If that part of the locale needs to be restored, the program should save the string. The calling program should make no assumptions about the format or length of the returned string.
x Pointer to a string describing the locale. NULL Indicates an error occurred; errno is set.
Previous Next Contents Index