
linux/文件
imxiangzi
这个作者很懒,什么都没留下…
展开
-
linux读取按行读写文本文件
#include stdio.h>#include unistd.h>#include fcntl.h>#include string.h>#include malloc.h>#include stdlib.h> typedef struct item_t { char *key; char *value;转载 2015-05-21 23:19:17 · 7086 阅读 · 0 评论 -
文件映射mmap简单设置文件大小(lseek (ftruncate可以设置文件大小))__使用mmap即文件映射实现文件的快速复制代码
lseek(fd,pagesize*10-100,SEEK_SET);lseek应该是文件指针移动到的位置,why mmap1是文件的长度呢?lseek 是获取文件的长度.移动到最后,则是文件的总长。如lseek (fd,80-1,...)write (fd, a, 1)append 一个,总量是80;在使用mmap进行文件映射做一些简单操作时,可以使用lseek对初次创建的文件大小进行设定。#i...转载 2018-07-12 13:15:12 · 4151 阅读 · 0 评论 -
利用mmap实现的一个文件拷贝例子
利用mmap实现的一个文件拷贝例子/* * gcc -Wall -O3 -o copy_mmap copy_mmap.c */ #include < stdio.h > #include < stdlib.h > #include < string .h > /* for memcpy */ #include < strings.h ...转载 2018-07-12 13:13:59 · 1153 阅读 · 0 评论 -
使用mmap在内存中读写文件https://www.cnblogs.com/java-koma/archive/2012/12/01/2797226.html
通常情况下是使用read/write,fread/fwrite等来读写文件,linux提供了一种方式可以将文件映射到内存,然后可以用字符串的方式对它进行读写操作,并写回到文件。 下面是一段测试代码,目的: 用mmap将文件abc.txt映射到内存,利用字符串函数向该内存中插入一个字符串,以达到修改文件的目的。 #include <stdio.h>#include <sys/m...转载 2018-07-12 13:13:05 · 381 阅读 · 0 评论 -
mmap实现大文件复制
#include <sys/mman.h>#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>#include <stdlib.h>#include <assert.h>#include <string.h>#include <st转载 2018-07-12 13:12:05 · 1068 阅读 · 0 评论 -
在linux中使用内存映射(mmap)操作文件
在使用内存映射操作文件之前,我们先按照常规的方式来读写文件,这种方式操作如下:1,打开或创建文件,得到文件描述符,2,将内存中的数据以一定的格式和顺序写入文件,或者将文件中的数据以一定的格式和顺序读入到内存;3,关闭文件描述符;下边是按照常规方式操作固定格式的文件的方法,包含读写两个示例;#include <stdlib.h>#include <stdio.h>#inclu...转载 2018-07-12 12:50:28 · 1348 阅读 · 0 评论 -
小小换行符乱谈(文本文件vs二进制文件)
使用 C 语言的 fopen 打开文件时,可以指定的 mode 有 12 个,其中 6 个包含 "b"使用 C++ 的 fstream 打开文件时,可用的模式组合有 24 个(?),其中 12 个包含 "binary"使用 python 的 open 打开文件,除了可以使用 C 中的 12 个模式外,还可以使用 "U" 或 "rU"使用 Qt 库的 QFile 打开文转载 2016-01-27 09:16:28 · 1003 阅读 · 0 评论 -
freopen - C/C++文件输入输出利器
freopen以前经常使用,比较方便,可以当作模板,在中间替换为自己的代码即可使用。#include // 实际使用中发现freopen也包含在iostream.h中,C++代码#include 即可。 int main(){ freopen("sample.in", "r", stdin); freopen("sample.out",转载 2015-05-22 14:31:50 · 39449 阅读 · 3 评论 -
C语言中输入输出重定,freopen()妙用。
使用的理由(范围):如果输入数据很庞大,需要一次又一次的重新输入和调试时可采用本函数。freopen ()函数:1.格式FILE * freopen ( const char * filename, const char * mode, FILE * stream );2.参数说明filename: 要打开的文件名mode: 文件打开的模式,和fopen中的模式(r/w)相转载 2015-05-22 14:33:19 · 2490 阅读 · 0 评论 -
ftell函数的用法(用于获取指针位置)
ftell函数用于得到文件位置指针当前位置相对于文件首的偏移字节数,下面给出一个简单的例子:[cpp] view plaincopy#include using namespace std; int main() { FILE *fp = fopen("myData.txt", "w"); cout fprintf(fp, "123转载 2015-05-22 15:46:22 · 1021 阅读 · 0 评论 -
[原]文件读写互斥
该文是2005年底在老东家开发监控程序时遇到的一个经典问题。回过头看来,竟然有同学(或者老师)看了该文,并给出了一条非常给力的评价,深感荣幸。返回头看这篇文章,基本上给人一种凌乱的感觉,幸运的是没有多少人看过。作为对自己的反省,将该文重新整理结构,梳理结果。原文将作为历史文物保留。 问题提出:系统进程/线程对同一个文件的读写为互斥关系时,如何协调。本文将只针对于作者在在2005年参与开转载 2015-05-22 16:08:23 · 1783 阅读 · 0 评论 -
linux中I/O流中的全缓冲、行缓冲和无缓冲,简明实例演示
说到缓冲,缓存之类的术语,通常都会和执行效率联系到一起,在标准I/O库中提供缓冲的主要目的就是减少系统函数read和write的调用,从而能够减少系统CPU时间。标准I/O库的缓冲主要分为3种:全缓冲、行缓冲和不缓冲。笔者就3种缓冲写了一些示例,帮助理解。1、全缓冲全缓冲就是当输入或输出时,当缓冲区被填满了之后,才会进行实际的I/O操作。下面是一个将”hello world!“写入log.转载 2015-05-22 14:43:04 · 4560 阅读 · 0 评论 -
文件内存映射mmap解决大文件快速读写问题
转自:http://blog.youkuaiyun.com/gulaizi/article/details/6325726mmap函数主要用途有三个:1、将一个普通文件映射到内存中,通常在需要对文件进行频繁读写时使用,这样用内存读写取代I/O读写,以获得较高的性能;2、将特殊文件进行匿名内存映射,可以为关联进程提供共享内存空间;3、为无关联的进程提供共享内存空间,一般也是将一个普通文件映射到内存中。Linux...转载 2018-07-12 13:16:00 · 13794 阅读 · 2 评论