ChinaUnix.net
相关文章推荐:

mmap函数

FILE* ptr; 文件是以 fd=open(tim,O_RDONLY|O_WRONLY|O_CREAT,S_IRWXU) 打开! ptr=(FILE*)mmap(NULL,sb.st_size,PROT_READ|PROT_WRITE,MAP_SHARED,fd,0); 这样使用mmap有错误没? mmap不是返回一个void*吗?

by jqx55ah - C/C++ - 2008-10-27 00:43:32 阅读(1473) 回复(2)

相关讨论

谁能提供mmap函数的用法,连接,多谢! 不要告诉我用google搜!

by YeLLoW - C/C++ - 2003-12-23 15:27:05 阅读(2866) 回复(3)

fetch():mmap error. offset: 16777139, len: 16777216, file: /data/crawler/urlda ta/downques/allques/0/url.0000000000. Invalid argument. 这是程序打出来的日志,mmap的offset 16777139,长度16777216,错误原因是Invalid argument,请大家看看是怎么回事

by litao19 - C/C++ - 2008-12-07 10:55:53 阅读(1565) 回复(5)

这个函数在处理一个大于 1G 地文件时报错 Not enough space 请问是怎么回事! 谢谢大家

by Cranbing - C/C++ - 2003-06-23 21:02:20 阅读(1107) 回复(1)

这个mmap()函数是干嘛用的?

by sunnyboy0819 - C/C++ - 2006-06-27 16:17:40 阅读(2983) 回复(15)

如下代码: int i=3,fd; char *mem; if((fd=open("test",O_RDWR))<0){ .... } mem=mmap(&i,10,PROT_READ|PROT_WRITE,MAP_FILE|MAP_SHARED,fd,0); 对这个mem字符串做个反序操作, 可结果是从第一个字符,而不是从第三个字符开始???? 是mmap被系统强行认为从零开始吗?[/code]

by lchhcllch - C/C++ - 2004-08-12 10:32:44 阅读(1133) 回复(3)

我的程序希望文件与我用shmget函数建立的共享内存绑定实现映射关系,编译成功,但运行程序总是报mmap无效参数错???mmap函数是否可以自己分配共享内存区???? 程序原码如下: [code] #include ; #include ; #include ; #include ; #include ; #include ; #include ; #include ; #include ; int main(void) { int fd,rc=0; ...

by dysnake - C/C++ - 2004-02-03 15:56:31 阅读(1072) 回复(1)

实验程序如下: [code] #include ; #include ; #include ; #include ; #include ; #include ; int main(void) { int fd; FILE *fp; char *shm,*sp; int len,i=0; char buff[100]; memset(buff,0,100); fp=fopen("data.tmp","r+"); fd=fileno(fp); if(fd<0) { pe...

by dysnake - C/C++ - 2004-01-30 17:46:24 阅读(3505) 回复(10)

由于要访问大内存(over 4G),所以要使用以上几个函数。 但是在使用过程中遇到几个问题: 1. mmap2按照man里说的,include了,但是却编不过。 在.cpp里使用,是直接报没有声明的错误。 在.c里使用,可以编译但是链接失败。而且编译时有一个warning,说是把integer赋给了pointer,明明返回的是void*怎么成integer了?搞不懂。 2. mmap64在32位系统上使用没有问题, 在64位系统上,.c编译也会有上面...

by Finasy - 程序开发 - 2007-01-08 10:58:36 阅读(1118) 回复(0)

[code]/*mycp.c*/ #include #include #include #include #include #include #include #include int main(int argc,char *argv[]) { int fdin,fdout; void* src; void* dst; struct stat statbuf; if(argc != 3) { printf("please input two file!\n"); exit(1); } if((fdin=open(argv[1],O_RDONLY))<0) /*打开原文件...

by ubuntuer - C/C++ - 2009-04-07 12:26:59 阅读(1385) 回复(3)

#include #include #include #include #include #include #include int main(int argc, char **argv) { char *fname; FILE *f; unsigned long offset, len; void *address; if (argc !=4 || sscanf(argv[2],"%li", &offset) != 1 || sscanf(argv[3],"%li", &len) != 1) { fprintf(stderr, "%s: Usage ...

by 3040602024 - C/C++ - 2007-10-09 22:24:15 阅读(3394) 回复(6)