fopen时w与wb的区别

简介:
   今天做了个小程序,把一个二进制文件分割为多个1.44M的文件,但分割完成后,发现很多文件的大小都超过1.44M。在网上搜索了下,发现时fopen是的参数部队。
    “w”表示为文本文件。用则会把文件中的“0A”变为“0D0A”,因为某些文件系统认为“0A”为文本文件的换行符,windows认为“0D0A”为文本文件的换行符,为了兼容其他文件系统(如从linux拷贝来的文件),windows上的fopen函数做了这样的格式转换。如果我记得没错的话,linux与vxworks上不会做这样的转换,所以可以说使用“w”,其属性要看所在的平台。
    “wb参数”表示为二进制文件,则样文件系统会按纯粹的二进制格式进行操作,因此也就不存在格式转换的问题了。
     综上,如果使用的是二进制文件,一定要使用“wb”参数,这样肯定错不了。
    
参数“wt”:
    “w”其实默认就是“wt”,即write in text mode。下面是msdn中队这几个参数的解释:

“If t or b is not given in mode, the default translation mode is defined by the global variable _fmode. ”

“The default setting of _fmode is _O_TEXT for text-mode translation. _O_BINARY is the setting for binary mode.

You can change the value of _fmodein either of two ways:

  • Link with BINMODE.OBJ. This changes the initial setting of _fmode to _O_BINARY, causing all files except stdinstdout, and stderrto be opened in binary mode.
  • Change the value of _fmode directly by setting it in your program. ”

本文转自莫水千流博客园博客,原文链接:http://www.cnblogs.com/zhoug2020/archive/2012/04/01/2428918.html,如需转载请自行联系原作者
相关文章
|
存储 测试技术 编译器
文件操作【fopen/fclose/fputs/fgets】【C语言/进阶】
文件操作【fopen/fclose/fputs/fgets】【C语言/进阶】
117 0
|
7月前
|
程序员 数据处理 C语言
用fopen函数打开数据函数
用fopen函数打开数据函数
57 2
|
7月前
|
存储 人工智能 程序员
文件操作(一、fgets和fputs、fscanf和fprintf、fread 和 fwrite、fopen和fclose、fgetc和fputc)
文件操作(一、fgets和fputs、fscanf和fprintf、fread 和 fwrite、fopen和fclose、fgetc和fputc)
|
存储 C语言 数据安全/隐私保护
c语言文件操作详解:fgetc,fputc,fgets,fputs,fscanf,,fprintf,fread,fwrite的使用和区别
c语言文件操作详解:fgetc,fputc,fgets,fputs,fscanf,,fprintf,fread,fwrite的使用和区别
192 0
文件操作以及相关的函数fwrite,fread,fseek,ftell,rwind,feof
🐰文件操作 🌸 fwrite 🌸fread 🌸fseek 🌸fteel 🌸rwind 🌸文本文件和二进制文件 🌸文件结束的判定 🌸文件缓冲区 🌸 实现拷贝一个文件
文件的介绍,流的概念,FILE*指针函数 fgetc fputc fgetcs fputs fscanf fprintf的使用实例及说明
文件的介绍,流的概念,FILE*指针函数 fgetc fputc fgetcs fputs fscanf fprintf的使用实例及说明
117 0
|
C++
【C++ 语言】文件操作 ( fopen | fprintf | fscanf | fgets | fputc | fgetc | ofstream | ifstream )(二)
【C++ 语言】文件操作 ( fopen | fprintf | fscanf | fgets | fputc | fgetc | ofstream | ifstream )(二·)
343 0
|
存储 C语言 C++
【C++ 语言】文件操作 ( fopen | fprintf | fscanf | fgets | fputc | fgetc | ofstream | ifstream )(一)
【C++ 语言】文件操作 ( fopen | fprintf | fscanf | fgets | fputc | fgetc | ofstream | ifstream )(一)
298 0
|
Python
6.1 file 读文件
#!/usr/bin/env python # -*- coding:utf-8 -*- #@Time      :2017/10/27 21:54 #@Author    :zhouyuyao #@File      :file_demo1.
609 0