![二进制文件和.exe 文件有什么区别?](https://linux22.com/image/51582/%E4%BA%8C%E8%BF%9B%E5%88%B6%E6%96%87%E4%BB%B6%E5%92%8C.exe%20%E6%96%87%E4%BB%B6%E6%9C%89%E4%BB%80%E4%B9%88%E5%8C%BA%E5%88%AB%EF%BC%9F%20.png)
谁能区分二进制文件和.exe 文件之间的区别?
答案1
二进制文件几乎是所有不是的东西纯文本,即包含以与文本编码不同的方式编码的数据(ASCII、UTF-8 或任何其他文本编码,例如 ISO-8859-2)。文本文件可以是纯文本文档,例如故事或信件,可以是配置文件,也可以是数据文件 - 无论如何,如果您使用纯文本编辑器打开它,内容是可读的。二进制文件是非文本文件的任何文件(也不是像 fifo、目录、设备等“特殊”文件)
那可能是mp3音乐。那可能是 jpg 图像。这可能是一个压缩档案,甚至是一个文字处理文档 - 虽然出于实际目的,它是文本,但它是编码的(写在磁盘上)作为二进制。您需要一个特定的程序来打开它,才能理解它 - 对于文本编辑器来说,内容是一团乱麻。
现在,在 Linux 中,当提到“二进制可执行文件”(程序)时,您会经常听到“二进制文件”。这是因为,虽然大多数程序的源代码(用高级语言编写)是纯文本,但编译后的可执行文件是二进制的。由于有相当多的编译格式(a.out、ELF、字节码...),它们通常被称为二进制文件而不是纠缠于它们的内部结构 - 从用户的角度来看,它们几乎是相同的。
现在,.exe 只是另一种编译格式 - MS Windows 中常见的格式。它只是一种二进制文件,针对 Windows API 进行编译和链接。
答案2
批处理文件实际上只是文本文件或可以由命令行处理器“cmd.exe”执行的小脚本,它们广泛用于 DOS 环境中以实现常见任务的自动化。
EXE 文件与 BAT 文件不同,因为它们包含可执行二进制数据而不是纯文本命令。它们以可移植可执行文件 (PE) 格式存储。 EXE 文件格式包括告诉 Windows 如何运行程序的各种标头和部分。 EXE 文件的某些部分可能包含程序代码,而其他部分可能包含资源数据。
答案3
一般来说,可以说没有什么区别:在 MS Windows 操作系统中,可执行文件有名称*.exe
,但在 *nix-like 操作系统中,可执行文件可以随意命名,称为“二进制文件”。
但这并不意味着每个二进制文件都是可执行的(例如*.exe
):二进制文件可能只是一种信息存储。例如,数据库文件(例如 MySQL 数据库的 MyISAM 或 InnoDB 文件)也是二进制文件(但不可执行)。