相关讨论
谁能提供mmap函数的用法,连接,多谢!
不要告诉我用google搜!
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,请大家看看是怎么回事
这个函数在处理一个大于 1G 地文件时报错 Not enough space
请问是怎么回事!
谢谢大家
如下代码:
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]
我的程序希望文件与我用shmget函数建立的共享内存绑定实现映射关系,编译成功,但运行程序总是报mmap无效参数错???mmap函数是否可以自己分配共享内存区????
程序原码如下:
[code]
#include ;
#include ;
#include ;
#include ;
#include ;
#include ;
#include ;
#include ;
#include ;
int main(void)
{
int fd,rc=0; ...
实验程序如下:
[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...
由于要访问大内存(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) /*打开原文件...
#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 ...