<div>ls -alR 명령어를 만들고 있습니다.</div> <div>재귀함수를 사용하여 하위 디렉터리까지 탐색하고</div> <div>파일명을 오름차순 정렬하기 위해 연결리스트를 사용하였습니다.</div> <div> </div> <div>실행 결과</div> <div>.:<br>drwxrwxr-x 10 jbshin(1000) jbshin(1000) 4096 2015-10-29 07:40:08 .<br>drwxrwxr-x 4 jbshin(1000) jbshin(1000) 4096 2015-10-28 20:05:09 ..<br>drwxrwxr-x 2 jbshin(1000) jbshin(1000) 4096 2015-10-16 23:40:50 hoc1<br>drwxrwxr-x 2 jbshin(1000) jbshin(1000) 4096 2015-10-17 00:36:37 hoc2<br>drwxrwxr-x 2 jbshin(1000) jbshin(1000) 4096 2015-10-30 17:13:17 hoc3<br>drwxrwxr-x 2 jbshin(1000) jbshin(1000) 4096 2015-10-28 22:13:01 hoc3_1<br>drwxrwxr-x 5 jbshin(1000) jbshin(1000) 4096 2015-10-28 20:05:17 hw4<br>drwxrwxr-x 2 jbshin(1000) jbshin(1000) 4096 2015-10-30 19:53:56 hw5</div> <div>./hoc1:<br>drwxrwxr-x 10 jbshin(1000) jbshin(1000) 4096 2015-10-29 07:40:08 .<br>drwxrwxr-x 4 jbshin(1000) jbshin(1000) 4096 2015-10-28 20:05:09 ..<br>drwxrwxr-x 2 jbshin(1000) jbshin(1000) 4096 2015-10-16 23:40:50 hoc1<br>Segmentation fault</div> <div> </div> <div>Segmentation fault 는 물론이고 제일 아래의 hoc1 파일은 디렉터리파일이 아닌데 디렉터리파일로 출력되고, hoc1디렉터리에 다른 파일이 하나 더 있는데 그 파일에서 Segmentation fault 가 뜬 것같습니다.</div> <div> </div> <div>디렉터리파일이 아닌데도 디렉터리로 인식하니까 일반 파일을 opendir 하려고 합니다.</div> <div> </div> <div>어느부분이 문제인지 감이 안잡힙니다.</div> <div> </div> <div>도움 주시면 감사하겠습니다.<br></div> <div><br></div> <table class="StyleRoot-CodeHighlighter" style="margin:0px;padding:0px;border:;line-height:1.1;background-color:rgb(30,30,30);" cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:10px;text-align:right;color:rgb(43,145,175);font-family:'돋움체';font-size:9pt;border-right-color:rgb(165,165,165);border-right-width:1px;border-right-style:solid;"> <div>1</div> <div>2</div> <div>3</div> <div>4</div> <div>5</div> <div>6</div> <div>7</div> <div>8</div> <div>9</div> <div>10</div> <div>11</div> <div>12</div> <div>13</div> <div>14</div> <div>15</div> <div>16</div> <div>17</div> <div>18</div> <div>19</div> <div>20</div> <div>21</div> <div>22</div> <div>23</div> <div>24</div> <div>25</div> <div>26</div> <div>27</div> <div>28</div> <div>29</div> <div>30</div> <div>31</div> <div>32</div> <div>33</div> <div>34</div> <div>35</div> <div>36</div> <div>37</div> <div>38</div> <div> </div></td> <td style="padding:10px 0px;color:rgb(255,255,255);font-family:'돋움체';font-size:9pt;"> <div style="padding:0px 10px;white-space:pre;"><span style="color:rgb(86,154,215);">void</span> ls(<span style="color:rgb(86,154,215);">char</span> *filename) </div> <div style="padding:0px 10px;white-space:pre;">{ </div> <div style="padding:0px 10px;white-space:pre;"> DIR *dp; </div> <div style="padding:0px 10px;white-space:pre;"> file *f=0; </div> <div style="padding:0px 10px;white-space:pre;"><span style="color:rgb(86,154,215);"> struct</span> dirent *dent; </div> <div style="padding:0px 10px;white-space:pre;"><span style="color:rgb(86,154,215);"> struct</span> stat buf; </div> <div style="padding:0px 10px;white-space:pre;"><span style="color:rgb(86,154,215);"> char</span> buffer[BUFSIZ]; </div> <div style="padding:0px 10px;white-space:pre;"></div> <div style="padding:0px 10px;white-space:pre;"><span style="color:rgb(86,154,215);"> if</span>((dp = opendir(filename))== NULL) </div> <div style="padding:0px 10px;white-space:pre;"> { </div> <div style="padding:0px 10px;white-space:pre;"> perror(<span style="color:rgb(214,157,133);">"opendir"</span>); </div> <div style="padding:0px 10px;white-space:pre;"> exit(1); </div> <div style="padding:0px 10px;white-space:pre;"> } </div> <div style="padding:0px 10px;white-space:pre;"></div> <div style="padding:0px 10px;white-space:pre;"> printf(<span style="color:rgb(214,157,133);">"%s:\n"</span>, filename); </div> <div style="padding:0px 10px;white-space:pre;"><span style="color:rgb(87,166,74);"> //printf("mode\t\tnlink\tuser(uid)\tgroup(gid)\tsize\tmtime\t\t\tname\n");</span></div> <div style="padding:0px 10px;white-space:pre;"></div> <div style="padding:0px 10px;white-space:pre;"><span style="color:rgb(86,154,215);"> while</span>(dent = readdir(dp)) </div> <div style="padding:0px 10px;white-space:pre;"> { </div> <div style="padding:0px 10px;white-space:pre;"> lstat(dent->d_name, &buf); </div> <div style="padding:0px 10px;white-space:pre;"></div> <div style="padding:0px 10px;white-space:pre;"> insert_list(&f, buf.st_mode, buf.st_nlink, buf.st_uid, buf.st_gid, buf.st_size, buf.st_mtime, dent->d_name); </div> <div style="padding:0px 10px;white-space:pre;"> } </div> <div style="padding:0px 10px;white-space:pre;"></div> <div style="padding:0px 10px;white-space:pre;"> print_list(&f); </div> <div style="padding:0px 10px;white-space:pre;"></div> <div style="padding:0px 10px;white-space:pre;"><span style="color:rgb(86,154,215);"> while</span>(f) </div> <div style="padding:0px 10px;white-space:pre;"> { </div> <div style="padding:0px 10px;white-space:pre;"><span style="color:rgb(86,154,215);"> if</span>(S_ISDIR(buf.st_mode) && strcmp(f->filename,<span style="color:rgb(214,157,133);"> "."</span>)!=0 && strcmp(f->filename,<span style="color:rgb(214,157,133);"> ".."</span>)!=0) </div> <div style="padding:0px 10px;white-space:pre;"> { </div> <div style="padding:0px 10px;white-space:pre;"> sprintf(buffer,<span style="color:rgb(214,157,133);"> "%s/%s"</span>, filename, f->filename); </div> <div style="padding:0px 10px;white-space:pre;"> printf(<span style="color:rgb(214,157,133);">"\n"</span>); </div> <div style="padding:0px 10px;white-space:pre;"> ls(buffer); </div> <div style="padding:0px 10px;white-space:pre;"> } </div> <div style="padding:0px 10px;white-space:pre;"> f = f->next; </div> <div style="padding:0px 10px;white-space:pre;"> } </div> <div style="padding:0px 10px;white-space:pre;"> closedir(dp); </div> <div style="padding:0px 10px;white-space:pre;">} </div> <div style="padding:0px 10px;white-space:pre;"> </div></td></tr></tbody><tbody><tr><td style="border-right-color:rgb(165,165,165);border-right-width:1px;border-right-style:solid;"></td> <td style="padding:0px 10px 10px;text-align:right;vertical-align:bottom;"><a style="text-decoration:none;margin-right:2px;" href="http://www.styleroot.com/" target="_blank"><img width="24" height="24" style="vertical-align:middle;" src="http://aspx.styleroot.com/CodeHighlighter/Images/Logo.png" border="0" alt=""></a><a style="color:rgb(255,255,255);font-family:'돋움체';font-size:8pt;text-decoration:none;vertical-align:middle;background-color:rgb(30,30,30);" href="http://aspx.styleroot.com/CodeHighlighter/" target="_blank">CodeHighligher</a></td></tr></tbody></table><div><br></div>
댓글 분란 또는 분쟁 때문에 전체 댓글이 블라인드 처리되었습니다.