c - C 和 mmap() 中 & 代表什么

标签 c mmap

int fd = open("/dev/mem", O_RDWR);
present = (unsigned char *)mmap(0, 
              getpagesize(), 
              PROT_READ|PROT_WRITE, 
              MAP_SHARED, 
              fd, 
              0x22400000);

if ((*present & 1) == 0)
{
  printf("Converter not present\n");
  exit(1);
}

1) 上面代码中的“&”运算符是什么意思?

最佳答案

这是bitwise and operator 。这意味着操作的结果是执行两个操作数的二进制 and,但是是逐位(即按位方式)。

在本例中,它检查 Present 指向的内存的第一位是否为 0。

关于c - C 和 mmap() 中 & 代表什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14928972/

相关文章:

c - 使用 mmap 时整数存储为不正确的值

c - 在 Mac OS X 上映射一个 block 设备?

linux - MEM_SHARED、mmap 和硬链接(hard link)

c - 如何从 dpdk 18.08 中的 rte_device 获取 rte_pci_device 详细信息

c - 强制 fgets 阻塞(即伪造 "interactive device")

c++ - C++读写二进制文件

c - 更新结构数组值后值保持不变

Linux 设备驱动程序允许 FPGA 直接通过 DMA 访问 CPU RAM

python - 如何使用 python 找出 (windows) 内存映射文件是否已经存在

将冗长的 if...else if...else... block 转换为开关