Ok, I think I solved my write to file problem.  The trick is you need to have a buffer of a size 1 more than you really need and write it.  Then seek to the end of file - 1 to write your next chunk of data.  Here's an example that works assuming you've already opened a file:
u8 txt[1001];  // filled with whatever data
u32 cnt;  // byte counter for filling the txt variable
if(cnt == 1000)
        {    
            cr = FS_WriteFile(&file_info, &txt[0] , &successcount, cnt + 1); 
            FS_Seek(&file_info, file_info.filelen - 1 );            
            cnt = 0;     
        }