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/

10-12 22:04