一个程序,让你清楚区分二进制文件和文本文件
来源:互联网 发布:情义我心知粤语版 编辑:程序博客网 时间:2024/05/21 13:18
从文件编码的方式来看,文件可分为ASCII码文件和二进制码文件两种。
ASCII文件也称为文本文件,这种文件在磁盘中存放时每个字符对应一个字节,用于存放对应的ASCII码。例如,数5678的存储形式为:
ASCII文件也称为文本文件,这种文件在磁盘中存放时每个字符对应一个字节,用于存放对应的ASCII码。例如,数5678的存储形式为:
ASC码 | 00110101 | 00110110 | 00110111 | 00111000 |
十进制码 | 5 | 6 | 7 | 8 |
这样的编码5678共占用4个字节。ASCII码文件可在屏幕上按字符显示, 例如源程序文件就是ASCII文件,用DOS命令TYPE可显示文件的内容。 由于是按字符显示,因此能读懂文件内容。
二进制文件是按二进制的编码方式来存放文件的。 例如, 数5678的存储形式为: 00010110 00101110只占二个字节。二进制文件虽然也可在屏幕上显示, 但其内容无法读懂。C系统在处理这些文件时,并不区分类型,都看成是字符流,按字节进行处理。 输入输出字符流的开始和结束只由程序控制而不受物理符号(如回车符)的控制。 因此也把这种文件称作“流式文件”。
二进制文件是按二进制的编码方式来存放文件的。 例如, 数5678的存储形式为: 00010110 00101110只占二个字节。二进制文件虽然也可在屏幕上显示, 但其内容无法读懂。C系统在处理这些文件时,并不区分类型,都看成是字符流,按字节进行处理。 输入输出字符流的开始和结束只由程序控制而不受物理符号(如回车符)的控制。 因此也把这种文件称作“流式文件”。
#include <stdio.h>
#include <string.h>
#include <fcntl.h>
#include <unistd.h>
#include <string.h>
#include <fcntl.h>
#include <unistd.h>
int main()
{
int i;
int len;
FILE *out;
unsigned char in_str[128];
unsigned char string[] = {0xFF, 0x97, 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0xFF, 0x0};
memset(in_str, 0, 128);
len = strlen(string);
out = fopen("Test", "w+");
fwrite(string, sizeof(unsigned char), len, out);
fclose(out);
out = fopen("Test", "r+");
fread(in_str, sizeof(unsigned char), len, out);
for(i = 0; i < len; i++)
printf("%x ", in_str[i]);
fclose(out);
printf("\n");
{
memset(in_str, 0, 128);
int fd;
fd = open("PText", O_CREAT|O_RDWR, 0666);
write(fd, string, len);
close(fd);
fd = open("PText", O_RDWR);
read(fd, in_str, len);
for(i = 0; i < len; i++)
printf("%x ", in_str[i]);
close(fd);
printf("\n");
}
{
out = fopen("TTest", "w+");
for(i = 0; i < len; i++){
fprintf(out, "0x%x ", string[i]);
}
fclose(out);
memset(in_str, 0, 128);
out = fopen("TTest", "r+");
for(i = 0; i < len; i++){
fscanf(out, "%x", &in_str[i]);
}
for(i = 0; i < len; i++)
printf("%x ", in_str[i]);
fclose(out);
printf("\n");
}
return 0;
}
{
int i;
int len;
FILE *out;
unsigned char in_str[128];
unsigned char string[] = {0xFF, 0x97, 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0xFF, 0x0};
memset(in_str, 0, 128);
len = strlen(string);
out = fopen("Test", "w+");
fwrite(string, sizeof(unsigned char), len, out);
fclose(out);
out = fopen("Test", "r+");
fread(in_str, sizeof(unsigned char), len, out);
for(i = 0; i < len; i++)
printf("%x ", in_str[i]);
fclose(out);
printf("\n");
{
memset(in_str, 0, 128);
int fd;
fd = open("PText", O_CREAT|O_RDWR, 0666);
write(fd, string, len);
close(fd);
fd = open("PText", O_RDWR);
read(fd, in_str, len);
for(i = 0; i < len; i++)
printf("%x ", in_str[i]);
close(fd);
printf("\n");
}
{
out = fopen("TTest", "w+");
for(i = 0; i < len; i++){
fprintf(out, "0x%x ", string[i]);
}
fclose(out);
memset(in_str, 0, 128);
out = fopen("TTest", "r+");
for(i = 0; i < len; i++){
fscanf(out, "%x", &in_str[i]);
}
for(i = 0; i < len; i++)
printf("%x ", in_str[i]);
fclose(out);
printf("\n");
}
return 0;
}
使用UltraEdit查看Test、PTest、TTest这三个文件,可以很明显的发现其中的不同。
Test和PTest是二进制文件,TTest就是文本文件。
0
上一篇:Linux ELF文件学习(1)
下一篇:本土战略 Ubuntu创始人宣布将发中国版
相关热门文章
- Linux文件分割
- 程序以补丁的形式自动升级控件...
- 文件打开的文本模式和二进制模...
- Linux下which、whereis、locat...
- 大数据量整数排序
- linux 常见服务端口
- 【ROOTFS搭建】busybox的httpd...
- xmanager 2.0 for linux配置
- 什么是shell
- linux socket的bug??
- 初学UNIX环境高级编程的,关于...
- chinaunix博客什么时候可以设...
- 一个访问量较大网站的服务器。...
- 收音机驱动与v4l2架构的关系,...
- 如何将linux驱动改为裸机驱动(...
给主人留下些什么吧!~~
评论热议
0 0
- 一个程序,让你清楚区分二进制文件和文本文件
- 一个程序,让你清楚区分二进制文件和文本文件
- 区分文本文件和二进制文件
- 区分二进制文件和文本文件
- 为什么要区分二进制文件和文本文件呢?
- 文本文件和二进制文件
- 文本文件和二进制文件
- 文本文件和二进制文件2
- 二进制文件和文本文件
- VC:二进制文件和文本文件
- 文本文件和二进制文件区别
- 文本文件和二进制文件
- 文本文件和二进制文件区别
- 文本文件和二进制文件转换
- 文本文件和二进制文件
- 二进制文件和文本文件
- 文本文件和二进制文件
- 文本文件和二进制文件
- 控制函数assert.h, setjmp.h和signal.h
- ADS分散加载文件及其应用
- 收藏:让你吃惊的60个绝对得看的常识!!!!
- linux内核可变参数分析
- Linux ELF文件学习(1)
- 一个程序,让你清楚区分二进制文件和文本文件
- 本土战略 Ubuntu创始人宣布将发中国版
- 出现单边帐,该如何处理!
- 程序的自我改写
- tcpdump命令详解(整理)
- Linux MTD下获取Nand flash各个参数的过程的详细解析
- windows XP下安装Qt
- Qt-简单程序实例Hello,world
- iconv的转化脚本
原创粉丝点击
热门IT博客
热门问题
老师的惩罚
人脸识别
我在镇武司摸鱼那些年
重生之率土为王
我在大康的咸鱼生活
盘龙之生命进化
天生仙种
凡人之先天五行
春回大明朝
姑娘不必设防,我是瞎子
自古华山一条路
三峡发现一条受伤真龙
蛇一整条进入b里
一条莉音
过一点可以画几条直线
娱乐至上一条大咸鱼
一条毛巾一个动作解除富贵包
行运一条龙
我有一条光阴长河
一条
一只白兔三条龙
一条才
一条一希
一条路
有一条路
一条路 张行
1条
一条路歌词
一条什么
张行一条路
第一条
左边画龙
煊赫门多少钱
和天下多少钱
金龙鱼价格多少钱一条
2019深圳按吹做一条龙
2019广州按吹做一条龙
2019东莞按吹做一条龙
女人二婚就是死路一条
养鱼为什么要养一条黑鱼
得了慢性咽炎就是死路一条
爸爸很喜欢女儿腿中间一条隙
一女
一杯八宝茶无敌神婿
上门狂婿一杯八宝茶
一杯敬明天一杯敬过往歌词
无敌神婿一杯八宝茶
一杯八宝茶作品
睡前一杯奶h阅读
浣溪沙一曲新词酒一杯
一杯清水辨别蜂蜜真假