Dear List, I'm trying to get diff/removed data and it's offset out. So I write a functions in receive_data. When I run backup, I found there is a weird behavior which I don't understand.
i = recv_token(f_in, &data) will receive (i = -1, offset2 = 0) some where in the middle of the transfer procedure. That's to say, it's going to transfer the first data block from sender, but I have been transferring almost half of the file. I noticed it was 92nd block (sum.blength = 700) . Hope I have a clear explanation. I'm really confused now. Any advice and suggestion is well appreciated. Below is my code segment to generate file for test. My Procedure (file 1 and file 2 have the same name, just binary difference): Step 1: backup File 1 Step 2: backup Fil 2 -- Daniel Li File 1: This is the first time backup file. > count = 1; > nSize = 1; > nBlock = 256; > nInterval = 4; > nAdjust = 256; > > printf("\nstart to build origin files!\n"); > ch = 0; > for(l = 0; l < count; l++) > { > memset(buffer,0, 256); > > sprintf(buffer,"media-test-3MB-file/origin/test/test%02d.dat",l); > printf("writting %s \n",buffer); > fd = open(buffer, O_RDWR|O_CREAT|O_EXCL, > S_IRUSR|S_IWUSR); > for(lll = 0; lll < nSize; lll++) > { > for(mmm = 0; mmm < nAdjust; mmm++) > { > for(nnn = 0; nnn < nBlock; nnn++) > { > write_fhead_char(fd, &ch, 1); > } > ch++; > } > } > } > printf("origin files done!\n"); > File 2: This is the second time backup. when transferring this file, I met the trouble. > printf("\nstart to build added data files!\n"); > ch = 0; > for(l = 0; l < count; l++) > { > memset(buffer,0, 256); > > sprintf(buffer,"media-test-3MB-file/add/test/test%02d.dat",l); > printf("writting %s \n",buffer); > fd = open(buffer, O_RDWR|O_CREAT|O_EXCL, > S_IRUSR|S_IWUSR); > for(lll = 0; lll < nSize + 1; lll++) > { > for(mmm = 0; mmm < nAdjust; mmm++) > { > if(mmm % nInterval == 0) > { > for(nnn = 0; nnn < nBlock; > nnn++) > { > write_fhead_char(fd, > &ch, 1); > } > } > > for(nnn = 0; nnn < nBlock; nnn++) > { > write_fhead_char(fd, &ch, 1); > } > ch++; > } > } > close(fd); > } -- Please use reply-all for most replies to avoid omitting the mailing list. To unsubscribe or change options: https://lists.samba.org/mailman/listinfo/rsync Before posting, read: http://www.catb.org/~esr/faqs/smart-questions.html