>> Edit article
이름
제목
패스워드
=============================================>>> Stevens 의 Advanced Programming in the UNIX Environment 책 보세요.... 한마디로 쥑입니다. ====================================================>>> : 리눅스에서, ls 명령을 C로 짤려고 하는데요.. : : 맘대로 안 되네요.. : 제가 원하는 건 파일 이름을 출력하고 : 그 옆에 파일 사이즈하고 변경시간을 출력하는 건데요.. : 밑에 있는데로 하면, 파일이름은 출력되는데,, : 파일사이즈와 변경시간은?? 아무리 생각해봐도~~. : stat structure에 st_mtime과 st_size라는 게 있던데,,, : 이걸 어떻게 출력하죠? : : readdir 함수에서, 디렉토리안의 상세 정보를 원한다면 : stat에 대한 호출이 필요하다고, 책에 나와있긴 한데,, : 도대체 어디에서 호출해 줘야 하는지... : : 아래에서, print 함수를 좀 봐주십시오.. : : 답변 부탁드립니다... 안녕히~~. : : #include "unistd.h" : #include "stdio.h" : #include "dirent.h" : #include "string.h" : #include "sys/stat.h" : #include "sys/types.h" : #include "stdlib.h" : : void print(char* dir) : { : DIR* dp; : struct dirent* entry; : struct stat statbuf; : // time_t time; : // off_t size; : : if((dp=opendir(dir))==NULL){ : fprintf(stderr,"cannot open directory: %s",dir); : return; : } : chdir(dir); : while((entry=readdir(dp))!=NULL){ : statbuf.st_mtime; : statbuf.st_size; : lstat(entry->d_name,&statbuf); : if(S_ISDIR(statbuf.st_mode)) : { : if(strcmp(".",entry->d_name)==0 || : strcmp("..",entry->d_name)==0) : continue; : // time=S_ISDIR(statbuf.st_mtime); : //size=S_ISDIR(statbuf.st_size); : printf("%s directory", : entry->d_name); : } : else{ : // time=S_ISDIR(statbuf.st_mtime); : //size=S_ISDIR(statbuf.st_size); : printf("%s file", : entry->d_name); : } : } : closedir(dp); : } : : int main(int argc, char* argv[]) : { : char* topdir; : if(argc>=2) : topdir=argv[1]; : print(topdir); : exit(0); : }
Copyleft
1999-2026 by
JSBoard Open Project
Theme Designed by
IDOO
All right reserved