강의

멘토링

로드맵

인프런 커뮤니티 질문&답변

김의람님의 프로필 이미지
김의람

작성한 질문수

리눅스 시스템 프로그래밍 - 이론과 실습

파일 속성 - 라이브 프로그래밍

./stat 파일이름

작성

·

234

0

./stat 파일이름을 넣어도 파일 사이즈가 96으로 고정, 출력도 ???만 뜨는데 혹시 왜 그런걸 까요?

int main(int argc, char **argv)

{

struct stat statbuf;

if (argc < 2) {

printf("usage: %s filename\n", argv[0]);

return -1;

}

if (stat(argv[1], &statbuf)) {

printf("stat() fail\n");

return -1;

}

printf("filename: %s\n", argv[1]);

printf("size: %ld\n", statbuf.st_size);

if (S_ISDIR(statbuf.st_mode)) {

printf("it is directory\n");

} else if (S_ISREG(statbuf.st_mode)) {

printf("it is regular file\n");

} else {

printf("???\n");

}

return 0;

}

답변 2

0

런잇(ProgCoach4U)님의 프로필 이미지
런잇(ProgCoach4U)
지식공유자

안녕하세요 김의람님.

"???"이 출력됐다면 입력된 파일이 디렉터리도 아니고 일반 파일도 아니라는 뜻이 되는데요..
다시 컴파일하기 전/후에 첫번째 파라미터로 같은 파일을 지정하셨을까요?
혹은 실행 파일을 실행하신 경로가 달라지지는 않았을까요?
말씀대로 코드 수정도 없고, 실행 경로나 입력 파일 모두 같았는데 다른 결과가 나왔다면.. 이해하기 힘든 상황입니다.ㅠ
기억을 더듬어보시면 힌트가 생각나지 않을까 싶습니다.

0

김의람님의 프로필 이미지
김의람
질문자

혹시 몰라서 stat 파일을 지웠다가

다시 gcc -o stat stat.c 명령어로 컴파일을 하니

이번엔 다시 제대로된 사이즈와 설명이 나옵니다.

코드 내용에서 달라진게 없는데 이럴 수가 있나요?

김의람님의 프로필 이미지
김의람

작성한 질문수

질문하기