当前位置:  技术问答>linux和unix

mmap问题!

    来源: 互联网  发布时间:2016-06-07

    本文导语:      int fd; struct stat st; char *ptr; char objid[MAXLINE]; fd = open("test.txt",O_RDONLY); fstat(fd,&st); ptr = mmap(NULL,st.st_size,PROT_READ,MAP_PRIVATE,fd,0); if(ptr == MAP_FAILED) printf("mmap failed!n");    现在由上述代码已经将文件test.tx...

   
	int fd;
struct stat st;
char *ptr;
char objid[MAXLINE];

fd = open("test.txt",O_RDONLY);
fstat(fd,&st);
ptr = mmap(NULL,st.st_size,PROT_READ,MAP_PRIVATE,fd,0);

if(ptr == MAP_FAILED)
printf("mmap failed!n");

   现在由上述代码已经将文件test.txt映射到了内存里面,我现在想对映射到内存中的文件进行一些读操作:由于之前test.txt中是按行存储的,我想也对映射到内存中的文件进行按行读,但是不知道怎么实现?因为ptr返回的是内存的首地址,而不是一个文件指针
有方法实现按行读吗?
这里说的按行读,是按原test.txt中存放的形式读

|
按行读,不就是按行分割符'n'读.
strtok(ptr, "n");不就完了吗

|
strtok 需要可读可写权限,你改成如下试试:

fd = open("test.txt", O_RDWR);
mmap(NULL, st.st_size, PROT_READ | PROT_WRITE, MAP_PRIVATE, fd, 0);

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 客户端 mmap 写文件,麻烦给点代码参考下,谢谢
  • mmap和malloc的区别是什么?
  • mmap使用中的困惑,,,在线等待,,请帮忙,谢谢!
  • 如何写mmap程序
  • mmap如何分段内存映射
  • 嵌入式LINUX mmap 出错
  • 请问溢出mmap()分配的共享空间要怎么办??
  • mmap()在内存小时的性能
  • 关于2.4.2的mmap()
  • 请问:FIFO文件能用mmap来使用吗?
  • 使用mmap可以读写文件,这是怎么实现的?
  • 请教用过mmap的大虾
  • 请问如何查看一个进程中 brk和mmap各自分配的内存空间的大小
  • 高分求助:bigphysareas和mmap的操作在两个不同的版本返回的结果不同
  • ***对FRAMEBUFFER中用到的MMAP的严重质疑****
  • mmap出错,不知是什么原因.
  • mmap后能用strtok或者srtok_r吗?
  • 多进程mmap同一个文件,当一个进程退出时,是否需要unmap
  • 谁有关于函数mmap()方面的用法实例或者文章?
  • mmap


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3