tail head cat sleep
QR code linking to this page

Man page  — BITSTRING

명칭

bit_alloc, bit_clear, bit_decl, bit_ffs, bit_nclear, bit_nset, bit_set, bitstr_size, bit_test – 비트열조작 매크로

내용

서식

#include <bitstring.h>

bitstr_t *
bit_alloc(int nbits);

void
bit_decl(bitstr_t *name, int nbits);

void
bit_clear(bitstr_t *name, int bit);

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

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

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

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

void
bit_set(bitstr_t *name, int bit);

int
bitstr_size(int nbits);

int
bit_test(bitstr_t *name, int bit);

해설

이러한 매크로는 비트열을 조작합니다.

매크로 bit_alloc() (은)는, nbits 개의 비트를 격납하는데 충분한 공간을 가리키는 형태 "bitstr_t *" 의 포인터를 돌려줍니다. 또는, 공간을 이용할 수 없는 경우는 NULL (을)를 돌려줍니다.

매크로 bit_decl() (은)는, nbits 개의 비트를 격납하는데 충분한 공간을 스택에 할당합니다.

매크로 bitstr_size() (은)는, nbits 개의 비트를 격납하는데 필요한, 형태 bitstr_t 의 요소의 수를 돌려줍니다. 이것은 비트열을 카피하는데 편리합니다.

매크로 bit_clear() (와)과 매크로 bit_set() (은)는, 비트열 name 안의, 0 을 기점으로서 bit 번째의 비트를 클리어 또는 설정합니다.

매크로 bit_nset() (와)과 매크로 bit_nclear() (은)는, 비트열 name 안의 start (으)로부터 stop 까지의 (0 을 기점으로서 번호 붙이고 한) 비트를 세트 또는 클리어 합니다.

매크로 bit_test() (은)는, 비트열 name 안에서, 0 을 기점으로서 bit 번째의 비트가 세트 되고 있는 경우, 평가 결과는 0 이 아닌 값이 되어, 그 이외의 경우는 0 으로 평가됩니다.

매크로 bit_ffs() (은)는, name 하지만 참조한다 nbits 비트의 배열 속에서, 세트 된 비트가 최초로 나타나는 위치를
0 을 기점으로서 번호 붙이고 한 값을, value 하지만 참조하는 위치에 격납합니다. 어느 비트도 설정되어 있지 않은 경우, value 하지만 참조하는 위치에,-1 가 설정됩니다.

매크로 bit_ffc() (은)는, name 하지만 참조한다 nbits 비트의 배열 속에서, 세트되어 있지 않은 비트가 최초로 나타나는 위치를, 0 을 기점으로서 번호 붙이고 한 값을, value 하지만 참조하는 위치에 격납합니다. 어느 비트도 설정되어 있는 경우, value 하지만 참조하는 위치에,-1 가 설정됩니다.

이러한 매크로의 인수는, 1 회만 평가되어 안전한 부작용이 있다 가능성이 있습니다.

#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);         } }

관련 항목

malloc(3)

역사

bitstring 함수는 BSD 4.4 그리고 처음 등장했습니다.

BITSTRING (3) July 19, 1993

tail head cat sleep
QR code linking to this page


Ben Bullock이 유닉스 매뉴얼 페이지에서 서비스에 대한 의견을 주시기 바랍니다. Privacy policy.

On two occasions I have been asked [by members of Parliament], 'Pray, Mr. Babbage, if you put into the machine wrong figures, will the right answers come out?' I am not able rightly to apprehend the kind of confusion of ideas that could provoke such a question.
— Charles Babbage