파일정보를 출력하는 소스를 이해 못하겠습니다.
차오름
질문 제목 : 지식in에서 파일정보 출력 소스를 얻었습니다.얻었지만 단순히 쓸수 있을 뿐이지 무슨 구조인지 전혀 모르겠습니다.
저도 나름대로 해보려고 했지만
처음부터 모르는게 너무 많습니다... 노력해도 함수 분석에서 막힙니다...질문 내용 :
#includestdio.h
#includeio.h
#includemalloc.h
#includestring.h
extern interrno;
#definehsmalloc malloc
#definehsfree free
#defineerrormsg(a) printf(%s errno[%d], error message [%s]\r\n, #a, errno, strerror(errno)?strerror(errno):[no message])
typedef struct_filenode {struct_finddata_t fileinfo;struct_filenode *next;struct_filenode *prev;}filenode, *filenode;
voidfilenodefree(filenode head);filenode hsgetfileinfo(char*path);
intmain(){filenode filedata, tmp;filedata = hsgetfileinfo(*.txt); for(tmp = filedata ; tmp ; tmp = tmp-next) {printf(txt파일 : %s\n, tmp-fileinfo.name);}filenodefree(filedata);
return0;}
voidfilenodefree(filenode head){filenode pp;for(pp = head; pp ; pp = head) {head = head-next;hsfree(pp);}
return;}
filenode hsgetfileinfo(char*path){longhandle;filenode head = null, cur, prv = null;struct_finddata_t fileinfo;
if((handle = _findfirst(path, &fileinfo)) == -1) {errormsg(_findfirst);return(null);}
do{if((cur = (filenode)hsmalloc(sizeof(filenode))) == null) {errormsg(hsmalloc);filenodefree(head);return(null);}
memset(cur, 0x00,sizeof(filenode));memcpy(&cur-fileinfo, &fileinfo,sizeof(fileinfo));
if(head == null) head = cur;else{cur-prev = prv;prv-next = cur;}prv = cur;}while(_findnext(handle, &fileinfo) == 0);
_findclose(handle);return(head);}
모르는 부분은 너무 많습니다...전체를 다 알려달라고는 하지 않겠습니다.다만 조금이라도 도와주시면 기쁠것 같습니다.
extern interrno 이부분과구조체 선언 부분에서 왜 멤버가 struct 로 이어지는건지... (구조체 관련 부분은 전혀 모르겠습니다...)memset(cur, 0x00,sizeof(filenode));memcpy(&cur-fileinfo, &fileinfo,sizeof(fileinfo));이 두개도 뭔지 모르겠습니다 *_*;;;그리고 마지막으로제가 원래 printf 에 파일이름,정보(??),크기를 출력하는 서식에서임시로 지워본것이지만함수나 다른곳 어디에서 크기,정보를 처리하는지 몰라서헛돌고 있는 문제만 해결되도 좋을것같습니다...ㅠㅜ
정말 부탁드립니다.
..c언어 q&a가 맞는것이겠죠?
-
밝은빛누리예
감사합니다!
링크드리스트...;ㅁ; 알겠습니다... -
가루
소스를 다 보지는 못했지만.. 간단한 부분만 아는데로 알려드릴께요
extern int errno // 전역변수이네요...
struct // 링크드리스트 참고해서 보시면 알게되실거에요. 짧은 글로 하기에는..;; 검색하시면 많이 나와요.
memset, memcpy는 문자열 함수입니다.
memset은 FileNode(구조체) 사이즈만큼 cur을 0으로 초기화 하는 부분이구요.
memcpy는 fileinfo 사이즈만큼 fileinfo를 cur구조체 안의 fi
번호 | 제 목 | 글쓴이 | 날짜 |
---|---|---|---|
2692144 | C언어와 리눅스에 대한 질문입니다. | 싴흐한세여니 | 2025-04-20 |
2692114 | 컨텍스트 스위칭하는데 걸리는 시간 측정.. | YourWay | 2025-04-19 |
2692086 | 간접참조 연산자, 증감연산자 질문이용! (2) | 블랙캣 | 2025-04-19 |
2692056 | 주석좀 달아주세요. 몇개적엇는데 몇개만달아주세요. (2) | DevilsTears | 2025-04-19 |
2691978 | 진수 쉽게 이해하는법... (3) | 지지않는 | 2025-04-18 |
2691949 | getchar() 한 문자를 입력받는 함수 질문 | 채꽃 | 2025-04-18 |
2691919 | 배열 정렬 및 합치기 질문입니다. | 사과 | 2025-04-18 |
2691845 | c언어왕초보 질문이 있습니다........ | 루나 | 2025-04-17 |
2691815 | void add(int num); 함수... (4) | 살랑살랑 | 2025-04-17 |
2691756 | 명령 프롬프트 스크롤바가 없어요 | 두메꽃 | 2025-04-16 |
2691725 | 자료구조에 관련해서 질문이 있어 글을 올립니다. | 누리알찬 | 2025-04-16 |
2691697 | if 문에서 구조체 배열에 저장되있던 문자열 검사하는 법 ? (2) | 민트맛사탕 | 2025-04-16 |
2691678 | C언어 함수 질문이요~!!! | 연보라 | 2025-04-15 |
2691650 | 반복문 | 돋가이 | 2025-04-15 |
2691618 | 링크드리스트 개념 질문이예요 (3) | 맨마루 | 2025-04-15 |
2691592 | 동적할당 이용 배열선언 질문입니다.ㅠㅠ (3) | 허리달 | 2025-04-15 |
2691542 | /=의 용도를 알려주세요 ㅠㅠ! (2) | 아라 | 2025-04-14 |
2691510 | sizeof 연산자 질문입니다 (2) | 종달 | 2025-04-14 |
2691483 | 파일 오픈시 에러 질문드립니다. (2) | 호습다 | 2025-04-14 |
2691450 | [visual c++ 툴]기초 질문 (3) | 해긴 | 2025-04-13 |