将文件分类为二进制文件或文本文件的决定因素是什么?
例如:考虑下面的 C 程序
注意:在运行程序之前确保 binary.txt 不存在。
观察:
文件创建“binary.txt”,内容为 TEXTFILE
#include <stdio.h>
int main()
{
int arr[2] = {1415071060,1162627398};
FILE *fp = fopen("binary.txt", "wb");
if(fp == NULL)
{
printf("Error opening file\n");
exit(1);
}
fwrite(arr, sizeof(arr), 1, fp);
fclose(fp);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
但是只有创建者知道它是以二进制模式创建的,这应该称为二进制文件。
任何打开文件“binary.txt”的人都会认为它是文本文件。
一般用户应该怎么称呼这个文件 -二进制文件还是文本文件?
@JohnBollinger 在评论中总结得最好。
文本与二进制不是现代操作系统的基本文件特征,而是文件解释方式之间的区别。
假设一个文件包含四个字节,字节的十六进制值如下:
0x41 0x42 0x43 0x44
Run Code Online (Sandbox Code Playgroud)
如果在使用 ASCII 编码的系统中将这些字节解释为字符,您将获得字符ABCD.
如果您将这些字节视为 4 字节整数,您将获得0x41424344大端系统中的值(十进制 1094861636)和0x44434241小端系统中的值(十进制1145258561)。
就计算机而言,它都是二进制的。至于他们的意思,这完全是一个解释的问题。