리눅스에서 struct stat 포인터를 선언하고 stat()으로 파일 정보를 받으려는데 코어덤프가 발생해요.
구조체만 선언해도 파일을 읽을 때 문제가 생기는 것 같은데, 원인이 뭘까요?
리눅스에서 struct stat 사용 시 코어덤프가 발생해요
레오 2025.04.08 댓글 8
레오 2025.04.08 댓글 8
리눅스에서 struct stat 포인터를 선언하고 stat()으로 파일 정보를 받으려는데 코어덤프가 발생해요.
구조체만 선언해도 파일을 읽을 때 문제가 생기는 것 같은데, 원인이 뭘까요?
슬기 2025.04.08
문제를 해결했어요. 말씀하신 대로 메모리 할당 문제였네요^^
츄릅 2025.04.08
유닉스에서는 메모리를 할당하지 않은 주소에 쓰려고 하면 오류가 나요.
모은 2025.04.08
stat 포인터를 선언하셨다면 구조체 크기만큼 malloc으로 메모리를 할당해야 할 것 같아요.
늦게 보실 수도 있겠지만요.
세련 2025.04.08
sizeof로 확인하니 88이네요.
코드는 open 후 for문에서 read로 한 바이트씩 읽고 %c로 출력해요. 권한이 0600인 파일을 유효 사용자 ID로 읽으려고 struct stat을 썼는데 잘 안 되네요.
들꿈 2025.04.08
코드와 디버깅 내용을 봐야 원인을 알 수 있을 것 같아요. 도움을 못 드려 죄송해요.
구조체 크기가 큰가요?
레온 2025.04.08
정확히는 open() 후 read()가 제대로 되지 않고 무한 루프를 돌아요.
struct stat blah; 문장만 지우면 괜찮고, 넣으면 문제가 생기네요.
도전중 2025.04.08
stat()으로 값을 받지 않으면 선언만으로 open에서 무한 루프가 돌고, 값을 받으면 실행되지만 세그먼트 폴트가 나요.
gdb로 봐도 원인을 모르겠네요.
바나나맛사탕 2025.04.08
무엇을 바보로 만든다는 건지 조금 더 자세히 설명해주실 수 있나요?