Previous | Contents | Index |
#include <math.h>double atan2 (double y, double x);
float atan2f (float y, float x); (INTEGRITY SERVERS, ALPHA)
long double atan2l (long double y, long double x); (INTEGRITY SERVERS, ALPHA)
double atand2 (double y, double x); (INTEGRITY SERVERS, ALPHA)
float atand2f (float y, float x); (INTEGRITY SERVERS, ALPHA)
long double atand2l (long double y, long double x); (INTEGRITY SERVERS, ALPHA)
y
A radian expressed as a real number.x
A radian expressed as a real number.
The atan2 functions compute the principal value of the arc tangent of y/x in the range [ -pi,pi ] radians. The sign of atan2 and atan2f is determined by the sign of y. The value of atan2 (y,x) is computed as follows, where f is the number of fraction bits associated with the data type:
Value of Input Arguments Angle Returned x = 0 or y/x > 2**( f+1) pi/2 * (sign y) x > 0 and y/x <= 2**( f+1) atan( y/x) x < 0 and y/x <= 2**( f+1) pi * (sign y) + atan(y/x) The atand2 functions compute the principal value of the arc tangent of y/x in the range [ - 180,180] degrees. The sign of atand2 and atand2f is determined by the sign of y.
The following are invalid arguments for the atan2 and atand2 functions:
Function Exceptional Argument atan2, atan2f, atan2l x = y = 0 atan2, atan2f, atan2l | x| = | y| = Infinity atand2, atand2f, atand2l x = y = 0 atand2, atand2f, atand2l | x| = | y| = Infinity
Returns the hyperbolic arc tangent of its argument.
#include <math.h>double atanh (double x);
float atanhf (float x);
long double atanhl (long double x);
x
A radian expressed as a real value in the domain [ - 1,1].
The atanh functions return the hyperbolic arc tangent of x. The atanh function is the inverse function of tanh where atanh ( tanh (x)) = x.|x| > 1 is an invalid argument.
Registers a function that is called without arguments at program termination.
#include <stdlib.h>int atexit (void (*func) (void));
func
A pointer to the function to be registered.
0 Indicates that the registration has succeeded. nonzero Indicates failure.
The longjmp function cannot be executed from within the handler, because the destination address of the longjmp no longer exists.
#include <stdlib.h> #include <stdio.h> static void hw(void); main() { atexit(hw); } static void hw() { puts("Hello, world\n"); }Running this example produces the following output:
Hello, world
Converts an ASCII character string to a double-precision number.
#include <stdlib.h>double atof (const char *nptr);
nptr
A pointer to the character string to be converted to a double-precision number. The string is interpreted by the same rules that are used to interpret floating constants.
The string to be converted has the following format:
[white-spaces][+|-]digits[radix-character][digits][e|E[+|-]integer]
Where radix-character is defined in the current locale.
The first unrecognized character ends the conversion.
This function is equivalent to strtod(nptr, (char**) NULL) .
x The converted value. 0 Indicates an underflow or the conversion could not be performed. The function sets errno to ERANGE or EINVAL, respectively. ±HUGE_VAL Overflow occurred; errno is set to ERANGE.
Convert strings of ASCII characters to the appropriate numeric values.
#include <stdlib.h>int atoi (const char *nptr);
long int atol (const char *nptr);
nptr
A pointer to the character string to be converted to a numeric value.
The atoi and atol functions convert the initial portion of a string to its decimal int or long int value, respectively. The atoi and atol functions do not account for overflows resulting from the conversion. The string to be converted has the following format:
[white-spaces][+|-]digitsThe function call atol (str) is equivalent to strtol (str, (char**)NULL, 10) , and the function call atoi (str) is equivalent to (int) strtol (str, (char**)NULL, 10) , except, in both cases, for the behavior on error.
n The converted value.
Convert strings of ASCII characters to the appropriate numeric values. atoll is a synonym for atoq .
#include <stdlib.h>__int64 atoq (const char *nptr);
__int64 atoll (const char *nptr);
nptr
A pointer to the character string to be converted to a numeric value.
The atoq (or atoll ) function converts the initial portion of a string to its decimal __int64 value. This function does not account for overflows resulting from the conversion. The string to be converted has the following format:
[white-spaces][+|-]digitsThe function call atoq (str) is equivalent to strtoq (str, (char**)NULL, 10) , except for the behavior on error.
n The converted value.
Returns the last component of a pathname.
#include <libgen.h>Function Variants The basename function has variants named _basename32 and _basename64 for use with 32-bit and 64-bit pointer sizes, respectively. See Section 1.9 for more information on using pointer-size-specific functions.char *basename (char *path);
path
A UNIX style pathname from which the base pathname is extracted.
The basename function takes the UNIX style pathname pointed to by path and returns a pointer to the pathname's final component, deleting any trailing slash (/) characters.If path consists entirely of the slash (/) character, the function returns a pointer to the string "/".
If path is a NULL pointer or points to an empty string, the function returns a pointer to the string ".".
The basename function can modify the string pointed to by path.
x A pointer to the final component of path. "/" If path consists entirely of the '/' character. "." If path is a NULL pointer or points to an empty string.
Compares byte strings.
#include <strings.h>void bcmp (const void *string1, const void *string2, size_t length);
string1, string2
The byte strings to be compared.length
The length (in bytes) of the strings.
The bcmp function compares the byte string in string1 against the byte string in string2.Unlike the string functions, there is no checking for null bytes. Zero-length strings are always identical.
Note that bcmp is equivalent to memcmp , which is defined by the ANSI C Standard. Therefore, using memcmp is recommended for portable programs.
0 The strings are identical. Nonzero The strings are not identical.
Copies byte strings.
#include <strings.h>void bcopy (const void *source, void *destination, size_t length);
source
Pointer to the source string.destination
Pointer to the destination string.length
The length (in bytes) of the string.
The bcopy function operates on variable-length strings of bytes. It copies the value of the length argument, in bytes, from the string in the source argument to the string in the destination argument.Unlike the string functions, there is no checking for null bytes. If the length argument is 0 (zero), no bytes are copied.
Note that bcopy is equivalent to memcpy , which is defined by the ANSI C Standard. Therefore, using memcpy is recommended for portable programs.
Draws a box around the window using the character vert as the character for drawing the vertical lines of the rectangle, and hor for drawing the horizontal lines of the rectangle.
#include <curses.h>int box (WINDOW *win, char vert, char hor);
win
The address of the window.vert
The character for the vertical edges of the window.hor
The character for the horizontal edges of the window.
The box function copies boxes drawn on subwindows onto the underlying window. Use caution when using functions such as overlay and overwrite with boxed subwindows. Such functions copy the box onto the underlying window.
OK Indicates success. ERR Indicates an error.
Determines the lowest virtual address that is not used with the program.
#include <stdlib.h>void *brk (unsigned long int addr);
addr
The lowest address, which the function rounds up to the next multiple of the page size. This rounded address is called the break address.
An address that is greater than or equal to the break address and less than the stack pointer is considered to be outside the program's address space. Attempts to reference it will cause access violations.When a program is executed, the break address is set to the highest location defined by the program and data storage areas. Consequently, brk is needed only by programs that have growing data areas.
n The new break address. (void *)( - 1) Indicates that the program is requesting too much memory. errno and vaxc$errno are updated.
Unlike other C library implementations, the HP 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.
Performs a binary search. It searches an array of sorted objects for a specified object.
#include <stdlib.h>Function Variants The bsearch function has variants named _bsearch32 and _bsearch64 for use with 32-bit and 64-bit pointer sizes, respectively. See Section 1.9 for more information on using pointer-size-specific functions.void *bsearch (const void *key, const void *base, size_t nmemb, size_t size, int (*compar)
(const void *, const void *));
key
A pointer to the object to be sought in the array. This pointer should be of type pointer-to-object and cast to type pointer-to-void.base
A pointer to the initial member of the array. This pointer should be of type pointer-to-object and cast to type pointer-to-void.nmemb
The number of objects in the array.size
The size of an object, in bytes.compar
A pointer to the comparison function.
The array must first be sorted in increasing order according to the specified comparison function pointed to by compar.Two arguments are passed to the comparison function pointed to by compar. The two arguments point to the objects being compared. Depending on whether the first argument is less than, equal to, or greater than the second argument, the comparison function must return an integer less than, equal to, or greater than 0.
It is not necessary for the comparison function (compar) to compare every byte in the array. Therefore, the objects in the array can contain arbitrary data in addition to the data being compared.
Since it is declared as type pointer-to-void, the value returned must be cast or assigned into type pointer-to-object.
x A pointer to the matching member of the array or a null pointer if no match is found. NULL Indicates that the key cannot be found in the array.
#include <stdio.h> #include <stdlib.h> #define SSIZE 30 extern int compare(); /* prototype for comparison function */ int array[SSIZE] = {30, 1, 29, 2, 28, 3, 27, 4, 26, 5, 24, 6, 23, 7, 22, 8, 21, 9, 20, 10, 19, 11, 18, 12, 17, 13, 16, 14, 15, 25}; /* This program takes an unsorted array, sorts it using qsort, */ /* and then calls bsearch for each element in the array, */ /* making sure that bsearch returns the correct element. */ main() { int i; int failure = FALSE; int *rkey; qsort(array, SSIZE, sizeof (array[0]), &compare); /* search for each element */ for (i = 0; i < SSIZE - 1; i++) { /* search array element i */ rkey = bsearch((array + i), array, SSIZE, sizeof(array[0]), &compare); /* check for successful search */ if (&array[i] != rkey) { printf("Not in array, array element %d\n", i); failure = TRUE; break; } } if (!failure) printf("All elements successfully found!\n"); } /* Simple comparison routine. */ /* */ /* Returns: = 0 if a == b */ /* < 0 if a < b */ /* > 0 if a > b */ int compare(int *a, int *b) { return (*a - *b); }This example program outputs the following:
All elements successfully found!
Converts a one-byte multibyte character to a wide character in the initial shift state.
#include <wchar.h>wint_t btowc (int c);
c
The character to be converted to a wide-character representation.
The btowc function determines whether ( unsigned char )c is a valid one-byte multibyte character in the initial shift state, and if so, returns a wide-character representation of that character.
x The wide-character representation of unsigned char c . WEOF Indicates an error. The c argument has the value EOF or does not constitute a valid one-byte multibyte character in the initial shift state.
Copies null characters into byte strings.
#include <strings.h>void bzero (void *string, size_t length);
string
Specifies the byte string into which you want to copy null characters.length
Specifies the length (in bytes) of the string.
The bzero function copies null characters ('\0') into the byte string pointed to by string for length bytes. If length is 0 (zero), then no bytes are copied.
Previous | Next | Contents | Index |