【发布时间】:2013-08-24 16:05:17
【问题描述】:
出于某种原因,我收到了-EINVAL,我不清楚为什么。这是我打开并尝试mmap 文件的地方:
if ((fd = open(argv[1], O_RDWR)) < 0)
{
fprintf(stderr, "Failed to open %s: %s\n", argv[1], strerror(errno));
return 1;
}
struct stat statbuf;
if (fstat(fd, &statbuf))
{
fprintf(stderr, "stat filed: %s\n", strerror(errno));
return 1;
}
char* fbase = mmap(NULL, statbuf.st_size, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0);
if (fbase == MAP_FAILED)
{
fprintf(stderr, "mmap failed: %s\n", strerror(errno));
return 1;
}
编辑:我应该补充一下,mmap 中发生了错误。
【问题讨论】:
-
什么意思?这是我正在写的东西的 sn-p。
-
问题是在代码的哪一行 sn-p EINVAL 发生在“哪里”。
-
对不起,我忘了指定。错误在 mmap 中。
-
st_size的值是多少?
标签: c linux virtualbox mmap