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은 헤더파일에 정의되어 있는 함수로 파일이 디렉토리인지 아닌지를 출력해주는 함수이다.
'Programming Language > C언어' 카테고리의 다른 글
문자열 함수 (0) | 2016.04.15 |
---|---|
이차원배열을 매개변수로 넣어주기 (passing a 2d array as a function argument) (0) | 2016.04.08 |
char 배열에 담겨져 있는 string 비교 (char array comparison) (0) | 2016.02.22 |
visual studio 단축키 (0) | 2016.02.21 |
포인터 (0) | 2016.02.05 |