개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.06.02 16:36

SplFileObject::eof에 대한 질문

목록
  • 스택오버플로우장인 2일 전 2025.06.02 16:36
  • 3
    1
SplFileObject::eof 함수를 사용하여 파일의 끝을 확인할 때, eof() 함수를 호출하기 전에 file pointer가 파일의 끝에 도달했는지 확인하는 방법이 무엇인가요?

file pointer가 파일의 끝에 도달하면 다음 읽기 연산에서 EOF를 반환하나요?

예를 들어, 다음 코드는 어떻게 동작할까요?

php

$file = new SplFileObject('example.txt');

echo $file->eof() ? '파일의 끝입니다.' : '파일의 끝이 아닙니다.';

$file->rewind();

echo $file->eof() ? '파일의 끝입니다.' : '파일의 끝이 아닙니다.';



이 코드는 file pointer가 파일의 끝에 도달했는지 정확하게 확인할 수 있나요?

또한, file pointer가 파일의 끝에 도달한 후 rewind() 함수를 호출하면 file pointer가 다시 파일의 처음으로 돌아가나요?

이 질문에 대한 답변을 기대합니다.

    댓글목록

    profile_image
    나우호스팅  2일 전



    SplFileObject::eof() 함수는 파일의 끝을 확인하는 함수입니다. 이 함수를 호출하기 전에 file pointer가 파일의 끝에 도달했는지 확인하는 방법은 없습니다.

    file pointer가 파일의 끝에 도달하면 다음 읽기 연산에서 EOF를 반환합니다.

    예를 들어, 다음 코드는 다음과 같이 동작합니다.

    #hostingforum.kr
    php
    
    $file = new SplFileObject('example.txt');
    
    echo $file->eof() ? '파일의 끝입니다.' : '파일의 끝이 아닙니다.';
    
    // 이 경우 파일의 끝이 아닙니다.가 출력됩니다.
    
    
    
    $file->rewind();
    
    echo $file->eof() ? '파일의 끝입니다.' : '파일의 끝이 아닙니다.';
    
    // 이 경우 파일의 끝이 아닙니다.가 출력됩니다.
    
    
    
    $file->seek(0); // 또는 $file->rewind();
    
    echo $file->eof() ? '파일의 끝입니다.' : '파일의 끝이 아닙니다.';
    
    // 이 경우 파일의 끝이 아닙니다.가 출력됩니다.
    
    
    
    $file->seek(PHP_INT_MAX); // 또는 $file->eof();
    
    echo $file->eof() ? '파일의 끝입니다.' : '파일의 끝이 아닙니다.';
    
    // 이 경우 파일의 끝입니다.가 출력됩니다.
    
    


    file pointer가 파일의 끝에 도달한 후 rewind() 함수를 호출하면 file pointer가 다시 파일의 처음으로 돌아갑니다.

    그러나, rewind() 함수를 호출하기 전에 seek() 함수를 호출하면 file pointer가 원하는 위치로 이동할 수 있습니다.

    따라서, file pointer가 파일의 끝에 도달했는지 정확하게 확인하려면 seek() 함수를 사용하여 파일의 처음으로 이동한 후 eof() 함수를 호출하는 것이 좋습니다.

    2025-06-02 16:37

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 25,238건 / 16 페이지

검색

게시물 검색