23.mmap的注意事项

1.如果对mmap的返回值(ptr)做++操作(ptr++),munmap是否能够成功?
  不能

  要想执行++操作,可以char* pt = ptr;

2.如果open时O_RDONLY,mmap时prot参数指定PROT_READ | PROT_WRITE会怎样?
  mmap调用失败

  open文件指定权限应该大于等于mmap第三个参数prot指定的权限

3.如果mmap时文件偏移量offset为1000会怎么样?

  报错,必须是4096(4K)的整数倍

4.如果不检测mmap的返回值会怎么样?

  最好检测,根据mmap的返回值来确定是否mmap成功

5.mmap什么情况下会调用失败?
  第二个参数length = 0
  第三个参数prot必须指定PROT_READ
    fd对应的打开权限必须大于等于prot权限

  偏移量:必须是4096的整数倍

6.可以open的时候O_CREAT一个新的文件来创建映射区吗?
  可以,但是需要做文件扩展,因为mmap的第二个参数length不能为0
   lseek函数

   truncate(path,length)

7.mmap后关闭文件描述符,对mmap映射有没有影响?

  没有

8.对ptr(mmap返回值)越界操作会怎么样?
  段错误

你可能感兴趣的:(Linux系统编程)