C를 사용하면 의 마지막 줄만 읽을 수 있습니까? 전체 내용을 반복하지 않고 있습니까?C : 파일의 마지막 행만 읽습니다. 루프가 없음
그 파일에는 각각 수백만 개의 개의 정수가 포함되어 있습니다 (long long int). 파일 자체가 상당히 클 수 있으며 최대 1000MB까지 추정 할 수 있습니다. 나는 마지막 줄이 55 자리보다 길지는 않지만 두 자리 숫자도 될 수 있다는 것을 잘 알고있다. 그것은 모든 종류의 데이터베이스를 사용하는 옵션이 없어 ... 나는 이미 그것을 고려했습니다.
아마도 어리석은 질문 일지 모르지만 PHP 배경에서 나는 대답하기가 어렵습니다. 나는 도처에 보았다. 그러나 아무것도 발견하지 않았다 는를 깨끗하게한다. 현재
내가 사용하고 있습니다 :
if ((fd = fopen(filename, "r")) != NULL) // open file
{
fseek(fd, 0, SEEK_SET); // make sure start from 0
while(!feof(fd))
{
memset(buff, 0x00, buff_len); // clean buffer
fscanf(fd, "%[^\n]\n", buff); // read file *prefer using fscanf
}
printf("Last Line :: %d\n", atoi(buff)); // for testing I'm using small integers
}
이 방법을 나는 파일의 내용을 반복하고있어 즉시 파일 ~ 50 만 라인의 상황이 아주 나쁜 ....
감사를 느리게보다 더 큰수록 사전에. 최대
http://stackoverflow.com/questions/5431941/while-feof-file-is-always-wrong –
의견을 보내 주셔서 감사합니다. 솔루션을 다른 사람들이 링크하여 어떻게 해결했는지 볼 수 있습니다 : http : // stackoverflow.co.kr/a/13792375/979785 – AnyOneElse