리눅스에서 chmod 명렁어를 c언어로 구현중입니다.
-v옵션을 구현하고있는데,
변경할 파일을 open으로 열어서 파일디스크립터 fd에 넣고
fstat 함수로 파일디스크립터와 stat구조체 주소를 넣고
변경전의 st_mode를 받아와서 출력해주고
변경후의 st_mode를 받아와서 출력해주는 소스입니다.
그런데 첫번째 파일이 자꾸 고정된 값으로 출력이 됩니다.
파일을 여러개 넣으면 첫번째 파일만 비정상출력, 나머지는 정상적으로 출력됩니다.
여러개 넣은 파일의 순서를 바꿔도 첫번째 파일만 비정상출력됩니다.
(이미지 - 오류1.png)
오류1 그림에서 8진수 100755의 100은 일반파일이고
20620의 20은 문자 장치라는데 이 부분이랑 관련이 있는지 궁금합니다.
chmod-v.png는 해당 부분 소스입니다.
perm.png는 권한을 출력해주는 perm함수 부분의 소스입니다.
이유를 도저히 모르겠어서 질문드립니다.