How to recognize executable files.


현재 디렉토리의 파일들



파일리스트를 출력하는 소스 test2.out 실행 결과 



sicsim.c.swp는 작성 중에 vim 종료를 비정상적으로 해서 디스크에 swap되어 있는 것 같다. 

디렉토리는 끝에 '/'를 출력하고 실행가능 파일은 끝에 '*'를 출력


그럼 이제 소스를 보장




괄호 안의 숫자들은 statbuf.st_mode를 8진수로 출력한 것


값들의 의미를 살펴보자면 (6개의 숫자 중 하위 3개의 숫자들만)


이런거라고 한다. 



위에 include한 헤더파일 중 sys/stat.h에 File type과 File mode bit를 위한 symbolic name들이 정의 되어 있다.

요기 참고



실행 여부를 가늠하기 위해서는 S_IXUSR, S_IXGRP, S_IXOTH 값이 필요하다. 

위의 값들은 8진수로 각각 100,10,1의 값을 가지고 있다. 

그래서 위에서 출력한 파일 모드의 값들과 &(AND연산)을 하면 실행가능하면 1, 불가하면 0의 값이 나오는 것이다. 


S_ISDIR은 헤더파일에 정의되어 있는 함수로 파일이 디렉토리인지 아닌지를 출력해주는 함수이다.


+ Recent posts