为什么我们需要在运行Perl脚本时使用chmod授予可执行权限,而在运行c程序时却没有这样做?
在终端中运行脚本时使用chmod 777 script.pl。为什么我们需要在运行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
但是为什么我们在运行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。