set_bit
是一個 Linux 內核中的宏,用于在給定的位圖中設置指定位置的位
以下是 set_bit
函數的基本用法:
#include<linux/bitops.h>
unsigned long bitmap[1];
set_bit
函數設置位圖中的某一位。函數原型如下:void set_bit(int nr, volatile unsigned long *addr);
其中,nr
是要設置的位的位置(從 0 開始計數),addr
是位圖的起始地址。
例如,將位圖中的第 5 位設置為 1:
set_bit(5, bitmap);
test_bit
函數。函數原型如下:int test_bit(int nr, const volatile unsigned long *addr);
如果指定位為 1,則返回非零值;否則返回 0。
例如,檢查位圖中的第 5 位是否為 1:
if (test_bit(5, bitmap)) {
printk("The 5th bit is set.\n");
} else {
printk("The 5th bit is not set.\n");
}
注意:在實際編程中,請確保不要越界訪問位圖數組,以避免潛在的內存訪問錯誤。