On Thu, 2009-06-11 at 07:11 +0800, Daniel.Li wrote:
> 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, 

Sorry, It's to say copy the first block from receiver, NOT 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);
> >             }
> 
-- 
Daniel Li

-- 
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

Reply via email to