check_int64_sub man page on Darwin

Man page or keyword search:  
man Server   23457 pages
apropos Keyword Search (all sections)
Output format
Darwin logo
[printable version]

CHECK_INT32_ADD(3)	 BSD Library Functions Manual	    CHECK_INT32_ADD(3)

NAME
     check_int32_add, check_uint32_add, check_int64_add, check_uint64_add,
     check_int32_sub, check_uint32_sub, check_int64_sub, check_uint64_sub,
     check_int32_mul, check_uint32_mul, check_int64_mul, check_uint64_mul,
     check_int32_div, check_uint32_div, check_int64_div, check_uint64_div, —
     detect overflow in arithmetic

SYNOPSIS
     #include <checkint.h>

     int32_t
     check_int32_add(int x, int y, int *err);

     uint32_t
     check_uint32_add(int x, int y, int *err);

     int64_t
     check_int64_add(int x, int y, int *err);

     uint64_t
     check_uint64_add(int x, int y, int *err);

     int32_t
     check_int32_sub(int x, int y, int *err);

     uint32_t
     check_uint32_sub(int x, int y, int *err);

     int64_t
     check_int64_sub(int x, int y, int *err);

     uint64_t
     check_uint64_sub(int x, int y, int *err);

     int32_t
     check_int32_mul(int x, int y, int *err);

     uint32_t
     check_uint32_mul(int x, int y, int *err);

     int64_t
     check_int64_mul(int x, int y, int *err);

     uint64_t
     check_uint64_mul(int x, int y, int *err);

     int32_t
     check_int32_div(int x, int y, int *err);

     uint32_t
     check_uint32_div(int x, int y, int *err);

     int64_t
     check_int64_div(int x, int y, int *err);

     uint64_t
     check_uint64_div(int x, int y, int *err);

DESCRIPTION
     The check_<type>_<operation>(x, y, err) family of functions perform the
     specified arithmetic operation (addition, subtraction, multiplication, or
     division) with the left operand of x and right operand of y and return
     the arithmetic result with the specified type.

     Either operand x or y (or both) can be of any type that is compatible to
     signed or unsigned 8-bit, 16-bit, 32-bit, or 64-bit integers.

     The err argument is or'ed by flags in the function to indicate if an
     overflow has occurred.  The possible flag values are:

	   CHECKINT_NO_ERROR		   no overflow has occurred
	   CHECKINT_OVERFLOW_ERROR	   overflow has occurred
	   CHECKINT_TYPE_ERROR		   operand is of an incompatible type

     The err argument is not cleared in calls to the
     check_<type>_<operation>(x, y, err) functions.  Detected overflow per‐
     sists in the err argument until err is reset to CHECKINT_NO_ERROR.

RETURN VALUES
     If successful, the check_<type>_<operation>() functions will return the
     arithmetic result of performing the operation with left operand x and
     right operand y (even when overflow error occurs).

     If any other error occurs, the return value is -1 and the argument err
     will be set to indicate the error.

EXAMPLES
	   /* Create a variable to store overflow flag */
	   int32_t err = CHECKINT_NO_ERROR;
	   /* Use checkint API to perform an arithmetic operation and
	    * store result in variable. */
	   int32_t arithmetic_result = check_int32_add(UINT_MAX, 1, &err);
	   /* Check status of overflow flag */
	   if (err & CHECKINT_OVERFLOW_ERROR) {
	       /* Perform overflow resolution code */
	       fprintf(stderr, "Overflow detected!\n");
	   }
	   /* Check for type error */
	   else if (err & CHECKINT_TYPE_ERROR) {
	       /* Deal with incompatible types error */
	       fprintf(stderr, "Incompatible types!\n");
	   }
	   /* Reset overflow flag for next operation */
	   err = CHECKINT_NO_ERROR;

ERRORS
     The check_<type>_<operation>() functions may fail if:

	   [CHECKINT_TYPE_ERROR]	   operand is of an incompatible type

HISTORY
     The checkint() API was introduced in Mac OS X 10.5.

BSD				April 20, 2007				   BSD
[top]

List of man pages available for Darwin

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net