随笔分类 -  IO File

关于文件读写
摘要:Windows对文件的读写提供了很丰富的操作手段,如:1. FILE *fp, fstearm...; (C/C++)2. CFile, CStdioFile...; (MFC)3. CreateFile, ReadFile...;(API)...在处理一般的文件(文本/非文本),这些足够了。然而在处理比较大的文件如几十M, 几百M, 甚至上G的文件, 这时再用一般手段处理,系统就显的力不从心了要把文件读出,再写进,耗费的是CPU利用率与内存以及IO的频繁操作。这显然是令用户难以忍受的为了解决这个吃内存,占CPU,以及IO瓶颈,windows核心编程提供了内存映射文件技术(Maping Fil 阅读全文

posted @ 2012-03-28 12:48 陈朋 阅读(392) 评论(0) 推荐(0)

文件open函数的参数
摘要:这里曾遇到过O_TRUNC 这个参数,当时没看明白啥意思,后来弄了个例子,英文不好的桑不起啊。 int _open(char *pathname,int access)为读或写打开一个文件, 按后按access来确定是读文件还是写文件,access值见下表 ┌──────┬────────────────────┐ │access值 │意义 │ ├──────┼────────────────────┤ │O_RDONLY │读文件 │ │O_WRONLY │写文件 │ │O_RDWR │即读也写 │ │O_NOINHERIT │若文件没有... 阅读全文

posted @ 2012-03-27 16:59 陈朋 阅读(2777) 评论(0) 推荐(0)

Linux 文件IO理解
摘要:linux文件IO操作可以分为两种:1.带缓存的文件IO操作,包括fopen, fclose, fread, fwrite, fgetc, fgets, fputc, fputs, freopen, fseek, ftell, rewind等2.不带缓存的文件IO操作,包括open, close, read, write, getc, getchar, putc, putchar 等两者的区别:1.带缓存的io操作是在标准C里面定义的(可移植),而不带缓存的io操作是POSIX中定义的(不可移植),属于系统调用。带缓存的实际上是在不带缓存的基础之上封装了一层,维护了一个输入输出缓冲区,使之能跨 阅读全文

posted @ 2012-03-27 16:56 陈朋 阅读(714) 评论(0) 推荐(0)

ofstream 解决中文路径问题
摘要:std::locale loc = std::locale::global(std::locale("")); ofstream testOFstream("C:\\测试.txt"); if (testOFstream.is_open()) { testOFstream<<"this is a test\n"; testOFstream<<"this is another test"; testOFstream.close(); }std::locale::global(std::local 阅读全文

posted @ 2011-07-01 10:41 陈朋 阅读(1329) 评论(0) 推荐(1)