相关讨论
[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) /*打开原文件...
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*吗?
#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 ...
#include
#include
#include
#include
#include
#include
int main()
{
int fd=open("/myhome/study/c/1468/ttt",O_RDWR);
char *p=mmap(NULL,100,PROT_READ|PROT_WRITE,MAP_SHARED,fd,0);
printf("%s\n",p);
char pp[100]="bianlizhi";
strcpy(p,pp);
printf("%s\n",p);
return 0;
}
ttt 中内容为12345
the result:
[root@localhost 1468]# ./a.out
12345
...
typedef struct{ char name[4]; int age; }people;
main(int argc, char** argv)
{
int fd,i;
int pagesize,offset;
people *p_map;
pagesize = sysconf(_SC_PAGESIZE);
printf("pagesize is %d\n",pagesize);
fd = open(argv[1],O_CREAT|O_RDWR|O_TRUNC,00777);
lseek(fd,pagesize*2-100,SEEK_SET);//设置文件大小。因为mmap不能改变文件大小
write(fd," ",1);
offset = 0; //此处offset = 0编译成版本1;offset = pag...
mmap() function和malloc() function有什么区别 呢?什么时候我们可以用mmap() function呢?它有什么好处呢?
hi, all
我用mmap把一个elf格式的可执行文件放入内存. mmap一直返回错. 我的代码如下:
stat (file, &file_stat);
fd = open(file, O_RDONLY);
ret_val = mmap(NULL, file_stat.st_size, PROT_READ, MAP_PRIVATE|MAP_FILE|MAP_VARIABLE, fd, getpagesize());
为什么ret_val老是-1. 我的环境是salories.
谢谢
mmap后文件不是映射到共享内存区了吗?为什么使用ipcs更本看不到这块内存区?mmap后的内存块的也是随内核的吧
从输出看mmap确实映射了,但myread读到的同mywrite所写的并不实时对应,有什么办法改吗,即使阻塞也可以,和msync没关吧应该?先谢过
[code](myread.c)
#include
int main()
{
int fd;
int *shm;
fd = open("data.tmp",O_CREAT|O_RDWR,00777);
if(fd<0)
{
...
}
int len;
len = lseek(fd,0,SEEK_END);
if(len<1)
{
lseek(fd,1,SEEK_SET);
write(fd,'1',1);
}
shm = mmap(NULL,1,PROT_READ|PROT_WRITE,MAP_S...
by
andyY
-
C/C++
-
2003-12-12 15:55:14 阅读(967) 回复(1)
我用mmap读文件时发现如果文件中含有16进值0的话,则mmap只读取到16进值0的地方,后面的内容没有读,是不是mmap遇到16进值0就结束了?怎样才能将后面的内容读出来?
by
ninth
-
C/C++
-
2003-10-17 13:22:39 阅读(830) 回复(2)