다른 컴퓨터 또는 인터넷에서 다운로드 한 파일을 구문 분석하고 해당 파일에서 정보를 수집해야하는 Linux 프로그램을 개발 중입니다. 프로그램은 또한 루틴, 매 n 일/시간/분/시간마다 파일을 다시 다운로드해야하며 파일이 변경된 경우 계속 업데이트하기 위해 다시 구문 분석해야합니다.다운로드 한 파일이 기존 파일과 동일한 지 여부를 확인하는 기능
그러나 파일을 구문 분석하는 프로세스에는 많은 리소스가 필요할 수 있습니다. 따라서 파일을 마지막으로 다운로드 한 후 파일이 변경되었는지 확인하는 기능이 필요합니다.
int get_checksum(char *filename) {
// New prototype, if no such function already exists in standard C-libraries
int result; // Or char/float/whatever
// ...
return result;
}
int main(void) {
char filename[] = { "foo.dat" };
char file_url[] = { "http://example.com/foo.dat" }
int old_checksum; // Or char/float/whatever
int new_checksum; // Or char/float/whatever
// ...
// Now assume that old_checksum has a value from before:
dl_file(filename, file_url); // Some prototype for downloading the file
if ((new_checksum = get_checksum(filename)) == -1) {
// Badness
}
else {
if (new_checksum != old_checksum) {
old_checksum = new_checksum;
// Parse the file
}
else {
// Do nothing
}
}
// ...
}
Q1 :/C++ 라이브러리 표준 C에서 사용할 수get_checksum
(위의 예에서)와 같은 기능이 있나요 나는이 예제 같은 것을 상상?
질문 2 :이 목적을 달성하는 가장 좋은 방법은 무엇입니까? 매우 고급 기능
- - 암호화 또는 보안 체크섬
- 마지막보다 오래된 파일에 새 파일을 비교 할 수있는 능력, 새로운 다운로드 한 파일부터 항상 것입니다
: 거기가 필요하지 않다고
이전 버전을 덮어 씁니다.
파일 타임 스탬프를 신뢰할 수 없습니까? –
@CareyGregory 새 파일을 다운로드 할 때 타임 스탬프가 변경되지 않습니까? – SeagulFish
다운로드하기 전에 원본 컴퓨터에서 타임 스탬프를 얻을 수 있다고 생각했습니다. 그렇게 할 수 있다면 다운로드를 건너 뛸 수 있습니다. –