gpt4 book ai didi

c++ - 使用 mmap() 时从 'void*' 到 'char*' 的无效转换

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:18:50 25 4
gpt4 key购买 nike

我有以下片段:

char* filename;
unsigned long long int bytesToTransfer;
int fd, pagesize;
char *data;

fd = open(filename, O_RDONLY);
if (fd==NULL){
fputs ("File error",stderr);
exit (1);
}

cout << "File Open: " << filename << endl;

pagesize = getpagesize();
data = mmap((caddr_t)0, bytesToTransfer, PROT_READ, MAP_SHARED, fd, 0);
if (*data == -1) {
fputs ("Memory error",stderr);
exit (2);
}

cout << "Data to Send: " << data << endl;

但是当我编译时,我收到:

error: invalid conversion from ‘void*’ to ‘char*’ [-fpermissive] data = mmap((caddr_t)0, bytesToTransfer, PROT_READ, MAP_SHARED, fd, 0);

有人可以提示我哪里出了问题吗?

最佳答案

C++ 不执行来自void* 的隐式转换,您必须将此显式化

data = static_cast<char*>(mmap((caddr_t)0, bytesToTransfer, PROT_READ, MAP_SHARED, fd, 0));

关于c++ - 使用 mmap() 时从 'void*' 到 'char*' 的无效转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23258521/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com