0
저는 초보자 C 프로그래머입니다. dir을 열어 파일 이름을 읽고 stat를 사용하여 해당 파일에 대한 정보를 제공하려고합니다. 여기서는 디렉토리 또는 파일인지 확인하려고합니다. 나중에 아예 수정 된 시간과 파일 크기 등을 얻습니다. 이제는 한 레벨 만 얻었습니다. 및 .. 파일. 왜?Dir에 대한 포인터 및 파일 정보를 stat와 함께
./check Dirc
whats in Dirc
two dir and two files
Program/ ProgramX/ test test2
Dir *ptrDir;
struct dirent *stDir;
struct stat buff;
if(ptrDir = opendir(argv[1]) !=NULL){
printf("%s\n",argv[1]);
while((stDir = readdir(ptrDir)) != NULL){
if(stDir->d_name[0] !='.'){//i dont want the hidden files
if((stDir->d_name, &buff) == -1){ perror("stat broke");}
printf("stDir name: %s\n", stDir->d_name);
switch(buff.st_mode &s_IFMT){
case S_IFDIR: printf("Directory\n"); break;
case S_IFREG: printf("File\n"); break;
default: print("default\n");
}
}
}
}
OutPut:
Data:
stDir name: Program
stat broke: No such file or directory
Expected OutPut:
OutPut:
Data:
stDir name: Program
Directory
stDir name: ProgramX
Directory
stDir name: test
File
stDir name: test2
File
나는 그것을 알아 냈다. 나는 man 페이지를 더 잘 읽었어야했다. 나는 파일이 어디에 있는지에 따라 경로를 만드는 것을 끝내었다. 그래서 나는 strcpy와 strcat를 많이 사용했다. – humbleSquid