2017-10-29 12 views
0

chmod 777 script.pl은 터미널에서 스크립트를 실행할 때 사용됩니다. 그러나 우리가 c 프로그램을 실행할 때 chmod pg.c를 사용하지 않는 이유는 무엇입니까?왜 우리는 Perl 스크립트를 실행하는 동안 chmod를 사용하여 실행 권한을 부여해야하지만 c 프로그램을 실행하는 동안 그러한 일이 수행되지는 않습니까?

+0

C 프로그램에 이미 실행 권한이 있습니까? –

+2

우리는'pg.c' 프로그램이 아니라 컴파일 된 버전을 실행하기 때문에. 'a.out'. 그리고'a.out' (보통)에는'x' 플래그가 설정되어 있습니다. – PerlDuck

+1

777을 사용하지 마십시오 - 컴퓨터의 모든 사용자 계정에 스크립트에 대한 쓰기 권한을 부여합니다. 좀 더 보수적 인 선택이 755 일 것입니다. –

답변

3

C 프로그램은 대개 직접 실행되지 않고 실행 파일로 컴파일됩니다. 컴파일러는 해당 파일에 대한 사용 권한을 설정하여 직접 실행할 수 있도록합니다.

명시 적으로 인터프리터를 호출 할 때 실행 가능 플래그가 스크립트를 실행하는 데 필요하지 않음에 유의하십시오. gcc pg.c이 항상 작동하는 것처럼 perl script.pl을 실행하면 항상 작동합니다. 실행 가능 플래그는 스크립트가 명시적인 인터프리터없이 실행될 때 (예 : ./script.pl)에만 필요합니다. 그러면 운영 체제가 파일 자체에서 정확한 통역사를 결정합니다 (예 : #!/usr/bin/perl 줄).

0

c 프로그램을 컴파일하면 이미 사용할 수있는 실행 바이너리가 제공됩니다. 하지만 펄을 인터프리터 언어로 컴파일 할 필요가 없다면 직접 실행할 수 있습니다. 왜냐하면 + x 권한이 필요하기 때문입니다.