Linux下可执行文件的默认扩展名为?

Linux自动识别文件类型。

文件后缀不是必需的。

执行权限很重要。

ELF文件头是可执行标志。

纯文本可作脚本部分。

商业软件.bin后缀常见。

你自己掂量。

Linux的.out是什么文件

对,Linux的.out是gcc编译的文件,可能是程序也可能是库。

默认gcc不指定文件名,生成a.out。

执行时,要写./a.out,不加.out不行。

UltraEdit能打开非标准文件.xnszs,可能是为了隐藏信息。

Linux好,多用户多任务,界面也友好。

谁知道在linux下的常用后缀名啊?

哦对啊Linux文件后缀名这事儿...确实花样挺多。

.c 后缀啊,那肯定是C语言写的源代码文件。
我以前写第一个小程序就是用.c的,记得当时用gcc编译,命令就是gcc test.c -o test。

.a 后缀,这是个库文件,由一堆目标文件.a拼起来的。
我上次项目里用到了libmylib.a,是别人写好的函数库,直接链接进去就行。

C++文件后缀名就多了,.C、.cc、.cxx都行。
我同事就特爱用.C,说哪个后缀都行,编译器都能认。
但项目里统一用哪个,得看老大怎么定。

.h 后缀,头文件,这必须懂啊。
比如math.h、stdio.h这种标准库,还有自己写的函数声明啊宏定义啊,都得放.h里。
多个.c文件能用同一个.h,编译的时候会包含进来。

.i 和 .ii 这两个我碰得少。
.i是预处理过的C文件,.ii是预处理过的C++文件。
记得学编译原理的时候老师说过,预处理就是处理include和宏这种,把.h里的东西塞进.c/.cpp里。

.m 后缀是Objective-C的源代码。
当年iOS开发火的时候,这个后缀见得挺多。
Objective-C其实就是C加上了消息发送这种面向对象的东西。

.o 后缀是编译出来的目标文件。
我调试程序时经常用gdb,看到内存里一堆.o文件里的符号地址。
链接的时候就是把所有.o文件和库文件.a拼成可执行文件。

.s 后缀是汇编语言。
这玩意儿我基本不用,但知道是啥。
机器码的直接文本版,比如mov ax, bx这种。

.S 后缀是预编译过的汇编文件。
跟.s不一样,.S文件先用cpp预处理,把宏啊include处理了,然后再交由汇编器。

总之Linux下文件后缀名看多了就习惯了,每个后缀名都有它自己的用处。