如果我这样做gcc filename.c
,我就会得到a.out
执行后gcc -o output_name filename.c
我们得到可执行文件output_name
。
这个文件的扩展名是什么?
答案1
与 Windows 不同,Linux 并不根据文件的扩展名来确定文件类型。相反,它会检查文件的前几个字节来确定文件类型。
gcc
因此,需要给出输出文件无延期。您可以添加任何您想要的扩展名(通过更改-o output_name
为-o output_name.abcd
),但这不会产生任何差异。
您可以查看命令的输出
file ./filename
例如
:~$ file output_file
output_file: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.24, BuildID[sha1]=9bc9fabf05a3d2e58c7780c48cd873cb2955b2ec, not stripped
:~$
答案2
它没有。您可以执行gcc -o myprog.exe filename.c
,它将被调用myprog.exe
。与 Windows 不同,Linux 上没有可执行文件的默认扩展名。如果您想将文件标记为可执行文件,请执行chmod +x file
。
ls -l
显示x
你的文件是否设置了(可执行)标志:
user@host# ls -l filename
-rwxr-x--x 1 ubu users 42 Mai 10 08:16 filename
- means its a file (d would be directory,see below)
r means readable
w means writeable
x means executable
第一个三元组用于所有者(ubu
在本例中),第二个三元组用于拥有组(用户),最后一个三元组用于其他所有人。
对于目录来说,x
意思是“可以进入目录”,所以如果x
没有设置,你就无法执行cd directory
。
在 Linux 上,文件扩展名并不特殊,它们只是文件名的一部分。