opendir()호출 시 segmentation fault가 납니다...

k0341의 이미지

안녕하세요.

왠만하면 질문은 안올릴려고 했건만...;

그냥 간단히 디렉토리명 집어 넣어서 있나 없나 체크 후

없으면 생성하게 하려고 하는데요.

DIR *Dir;
...
Dir = opendir(temp);

이런 식으로 코딩을 했는데, 디렉토리가 없을 때는 Dir이

NULL이 되면서 제대로 되는데 temp에 존재하는 디렉토리가

들어가면 segmatiation fault가 나버리네요..

(tgdb) print Dir                                                                                                                    
(tgdb) $2 = (struct __dirstream *) 0x400124b8                                                                                       
(tgdb) print temp                                                                                                                   
(tgdb) $3 = 0x80535b0 "log"                                                                                                         
(tgdb) n                                                                                                                            
(tgdb)                                                                                                                              
Program received signal SIGSEGV, Segmentation fault.                                                                                
0x42073d65 in _int_malloc () from /lib/i686/libc.so.6

디버깅 해보면 opendir()호출 하면 위와 같이 에러가 납니다.

이런 경우 temp 변수 사용에 문제가 있는건가요?

pynoos의 이미지

파일관련해서 malloc 함수에서 오류가 나는 경우, 다른 곳에서 malloc, free가 제대로 안된경우가 있습니다. 또는 free 를 두번 했다거나...

주위를 둘러 보세요..

k0341의 이미지

답변 감사 드리며 찾아보고서 안되면 다시 질문드리죠 ㅎㅎ

좋은 하루 되시고요 ^^

동욱옵하 쵝오 -_-