강의

멘토링

커뮤니티

Inflearn コミュニティ Q&A

haharam06084434 のプロフィール画像
haharam06084434

投稿した質問数

Linuxシステムプログラミング - 理論と実践

ファイル属性 - ライブプログラミング

./stat 파일이름

作成

·

263

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;

}

linux

回答 2

0

learnit님의 프로필 이미지
learnit
インストラクター

안녕하세요 김의람님.

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

0

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

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

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

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

haharam06084434 のプロフィール画像
haharam06084434

投稿した質問数

質問する