manpagez: man pages & more
man bitstring(3)
Home | html | info | man
bitstring(3)                                                      bitstring(3)




NAME

       bit_alloc, bit_clear, bit_decl, bit_ffs, bit_nclear, bit_nset, bit_set,
       bitstr_size, bit_test - bit-string manipulation macros


SYNOPSIS

       #include <bitstring.h>

       name = bit_alloc(nbits)
       bitstr_t *name;
       int nbits;

       bit_decl(name, nbits)
       bitstr_t name;
       int nbits;

       bit_clear(name, bit)
       bitstr_t name;
       int bit;

       bit_ffc(name, nbits, value)
       bitstr_t name;
       int nbits, *value;

       bit_ffs(name, nbits, value)
       bitstr_t name;
       int nbits, *value;

       bit_nclear(name, start, stop)
       bitstr_t name;
       int start, stop;

       bit_nset(name, start, stop)
       bitstr_t name;
       int start, stop;

       bit_set(name, bit)
       bitstr_t name;
       int bit;

       bitstr_size(nbits)
       int nbits;

       bit_test(name, bit)
       bitstr_t name;
       int bit;


DESCRIPTION

       These macros operate on strings of bits.

       Bit_alloc returns a pointer of type bitstr_t * to sufficient  space  to
       store nbits bits, or NULL if no space is available.

       Bit_decl is a macro for allocating sufficient space to store nbits bits
       on the stack.

       Bitstr_size returns the number of elements of type  bitstr_t  necessary
       to store nbits bits.  This is useful for copying bit strings.

       Bit_clear  and bit_set clear or set the zero-based numbered bit bit, in
       the bit string name.

       Bit_nset and bit_nclear set or clear the zero-based numbered bits  from
       start to stop in the bit string name.

       Bit_test  evaluates  to  zero if the zero-based numbered bit bit of bit
       string name is set, and non-zero otherwise.

       Bit_ffs sets *value to the zero-based number of the first  bit  set  in
       the array of nbits bits referenced by name.  If no bits are set, *value
       is set to -1.

       Bit_ffc sets *value to the zero-based number of the first bit  not  set
       in  the  array  of nbits bits referenced by name.  If all bits are set,
       value is set to -1.


EXAMPLE

            #include <limits.h>
            #include <bitstring.h>

            #define   LPR_BUSY_BIT        0
            #define   LPR_FORMAT_BIT      1
            #define   LPR_DOWNLOAD_BIT    2
            #define   LPR_AVAILABLE_BIT   9
            #define   LPR_MAX_BITS        10

            make_lpr_available()
            {
                 bitstr_t bit_decl(bitlist, LPR_MAX_BITS);
                 ...
                 bit_nclear(bitlist, 0, LPR_MAX_BITS - 1);
                 ...
                 if (!bit_test(bitlist, LPR_BUSY_BIT)) {
                      bit_clear(bitlist, LPR_FORMAT_BIT);
                      bit_clear(bitlist, LPR_DOWNLOAD_BIT);
                      bit_set(bitlist, LPR_AVAILABLE_BIT);
                 }
            }


SEE ALSO

       malloc(3)



4th Berkeley Distribution      December 13, 1989                  bitstring(3)

fcron 3.2.1 - Generated Mon Sep 11 10:30:26 CDT 2017
© manpagez.com 2000-2024
Individual documents may contain additional copyright information.