• 카테고리

    질문 & 답변
  • 세부 분야

    시스템

  • 해결 여부

    미해결

./stat 파일이름

24.02.21 00:55 작성 조회수 70

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

안녕하세요 김의람님.

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

0

김의람님의 프로필

김의람

질문자

2024.02.21

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

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

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

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