Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 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
- }
- }
- // ...
- }
- struct stat {
- dev_t st_dev; /* ID of device containing file */
- ino_t st_ino; /* inode number */
- mode_t st_mode; /* protection */
- nlink_t st_nlink; /* number of hard links */
- uid_t st_uid; /* user ID of owner */
- gid_t st_gid; /* group ID of owner */
- dev_t st_rdev; /* device ID (if special file) */
- off_t st_size; /* total size, in bytes */
- blksize_t st_blksize; /* blocksize for file system I/O */
- blkcnt_t st_blocks; /* number of 512B blocks allocated */
- time_t st_atime; /* time of last access */
- time_t st_mtime; /* time of last modification */
- time_t st_ctime; /* time of last status change */
- };
- unsigned int hash(vector<char> file){
- unsigned int result;
- int *arr = (int*)file.data();
- for(int i = 0;i < file.size() / sizeof(unsigned int);i++)
- result ^= arr[i];
- return result;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement