为什么我们需要在运行Perl脚本时使用chmod授予可执行权限,而在运行c程序时却没有这样做?

为什么我们需要在运行Perl脚本时使用chmod授予可执行权限,而在运行c程序时却没有这样做?,c,perl,chmod,C,Perl,Chmod,在终端中运行脚本时使用chmod 777 script.pl。 但是为什么我们在运行c程序时不使用chmod pg.c呢?c程序通常不是直接执行的,而是编译成一个可执行文件。编译器设置该文件的权限,以便可以直接执行该文件 请注意,显式调用解释器时,运行脚本不需要可执行标志。运行perlscript.pl始终有效,类似于gcc pg.c始终有效。仅当脚本在没有显式解释器的情况下运行时才需要executable标志,即/script.pl。然后,操作系统将从文件本身(例如从#!/usr/bin/pe

在终端中运行脚本时使用chmod 777 script.pl。
但是为什么我们在运行c程序时不使用chmod pg.c呢?c程序通常不是直接执行的,而是编译成一个可执行文件。编译器设置该文件的权限,以便可以直接执行该文件


请注意,显式调用解释器时,运行脚本不需要可执行标志。运行
perlscript.pl
始终有效,类似于
gcc pg.c
始终有效。仅当脚本在没有显式解释器的情况下运行时才需要executable标志,即
/script.pl
。然后,操作系统将从文件本身(例如从
#!/usr/bin/perl
行)确定正确的解释器。

C程序通常不直接执行,而是编译成可执行文件。编译器设置该文件的权限,以便可以直接执行该文件


请注意,显式调用解释器时,运行脚本不需要可执行标志。运行
perlscript.pl
始终有效,类似于
gcc pg.c
始终有效。仅当脚本在没有显式解释器的情况下运行时才需要executable标志,即
/script.pl
。然后,操作系统将根据文件本身(例如,从
#!/usr/bin/perl
行)确定正确的解释器。

编译c程序时,它已经为您提供了可执行二进制文件供使用。但是,如果Perl是一种解释语言,您不需要首先编译它,您可以直接执行它。因为需要+x权限。

当您编译c程序时,它已经为您提供了可执行二进制文件供您使用。但是,如果Perl是一种解释语言,您不需要首先编译它,您可以直接执行它。因为需要+x权限。

C程序已经有可执行权限?因为我们不运行
pg.C
程序,而是运行它的编译版本,例如
a.out
。而且
a.out
(通常)确实设置了
x
标志。不要使用777-这会让计算机上的每个用户帐户都可以对脚本进行写访问。更保守的选择是755。C程序已经具有可执行权限?因为我们不运行
pg.C
程序,而是运行它的编译版本,例如
A.out
。而且
a.out
(通常)确实设置了
x
标志。不要使用777-这会让计算机上的每个用户帐户都可以对脚本进行写访问。更保守的选择是755。