리눅스에서 struct stat 사용 시 코어덤프가 발생해요

리눅스에서 struct stat 포인터를 선언하고 stat()으로 파일 정보를 받으려는데 코어덤프가 발생해요.
구조체만 선언해도 파일을 읽을 때 문제가 생기는 것 같은데, 원인이 뭘까요?

댓글 8

  • 슬기 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

    무엇을 바보로 만든다는 건지 조금 더 자세히 설명해주실 수 있나요?