linux mmap返回值
时间: 2024-03-26 12:31:33 浏览: 78
根据提供的引用内容,Linux中的mmap函数在成功执行时返回被映射区的指针,而在失败时返回MAP_FAILED(其值为(void *)-1),并且errno会被设置为相应的错误值。
以下是一个演示Linux mmap函数返回值的例子:
```c
#include <stdio.h>
#include <stdlib.h>
#include <sys/mman.h>
#include <fcntl.h>
#include <unistd.h>
int main() {
int fd = open("file.txt", O_RDWR);
if (fd == -1) {
perror("open");
exit(1);
}
off_t size = lseek(fd, 0, SEEK_END);
if (size == -1) {
perror("lseek");
exit(1);
}
void *ptr = mmap(NULL, size, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0);
if (ptr == MAP_FAILED) {
perror("mmap");
exit(1);
}
printf("mmap successful. Pointer: %p\n", ptr);
if (close(fd) == -1) {
perror("close");
exit(1);
}
return 0;
}
```
阅读全文