реклама на сайте
подробности

 
 
> Работа с файлами
Jenya7
сообщение Oct 18 2017, 08:21
Сообщение #1


Профессионал
*****

Группа: Участник
Сообщений: 1 778
Регистрация: 29-03-12
Пользователь №: 71 075



Я получаю файлы с компьютера. Мне приходит tar файл. Я распаковываю его и тут возникает вопрос
Как можно проверить на стороне эмбедед, что файл не повредился при передаче? Есть CRC для файлов?

Еще такой вопрос. Мне нужно скопировать полученные файлы в другое место и удалить их. Но я не нашел функции копирования файла в файл. Все функции копирования либо масив-масив либо файл-масив либо масив-файл.
Код
FILE global_files[8];

void CopyFiles(void)
{
    FILE local_files[8];

    for (int i = 0; i < 8; i++)
   {
        copy (global_files[i],  local_files[i]);  //??? copy (char*, char*) - аргументы массивы
   }
}


Может можно сделать просто
Код
copy ((char)*global_files[i], (char)* local_files[i]);


Сообщение отредактировал Jenya7 - Oct 18 2017, 08:43
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Jenya7
сообщение Nov 14 2017, 06:41
Сообщение #2


Профессионал
*****

Группа: Участник
Сообщений: 1 778
Регистрация: 29-03-12
Пользователь №: 71 075



Такой вопрос. Я должен прочитать из файла проверочную сумму, 8 байт
Код
if (IsFileExists(checksum_file))
{
    FILE *file;
    char *checksum_buff = "";
    file = fopen(checksum_file, "r");
                            
    fread(checksum_buff, 8, 1, file);
    fclose(file);
}

один из аргументов fread функции - сколько байт прочитать. но байты могут быть записаны и со второй строчки. как задать считываемый размер?

а если так?
Код
if (IsFileExists(checksum_file))
   {
       FILE *file = fopen(checksum_file, "r");
       char buff[1024];
       char c;
       int char_count = 0;
       int i = 0;
      
       fseek(file, 0, SEEK_SET);
      
        while ((c = fgetc(file)) != EOF)
        {
            if (isalnum(c))
            {
                buff[i++] = (char) c;
                char_count++;
            }
            
            if (char_count == 8)
               break;
        }

        buff[i] = '\0';
        
        fclose(file);
   }


странно - у меня на строке while ((c = fgetc(file)) != EOF) ругается
Warning[Pe514]: pointless comparison of unsigned integer with a negative constant
char у меня в IAR знаковый.

понял - int c;

Сообщение отредактировал Jenya7 - Nov 14 2017, 08:01
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Jenya7   Работа с файлами   Oct 18 2017, 08:21
- - andrew_b   Цитата(Jenya7 @ Oct 18 2017, 11:21) Я пол...   Oct 18 2017, 08:47
|- - Jenya7   Цитата(andrew_b @ Oct 18 2017, 13:47) Ну ...   Oct 18 2017, 09:09
|- - XVR   Цитата(Jenya7 @ Oct 18 2017, 12:09) нашел...   Oct 18 2017, 12:53
|- - Jenya7   Цитата(XVR @ Oct 18 2017, 17:53) Вестимо ...   Oct 18 2017, 12:59
|- - andrew_b   Цитата(Jenya7 @ Oct 18 2017, 15:59) вот я...   Oct 18 2017, 14:28
|- - Jenya7   Цитата(andrew_b @ Oct 18 2017, 19:28) Это...   Oct 18 2017, 14:35
|- - andrew_b   Цитата(Jenya7 @ Oct 18 2017, 17:35) понял...   Oct 19 2017, 05:23
||- - Jenya7   Цитата(andrew_b @ Oct 19 2017, 10:23) Вид...   Oct 19 2017, 18:12
||- - andrew_b   Цитата(Jenya7 @ Oct 19 2017, 21:12) вопро...   Oct 20 2017, 05:26
||- - Jenya7   Цитата(andrew_b @ Oct 20 2017, 11:26) Тео...   Oct 20 2017, 07:33
|- - k155la3   Цитата(Jenya7 @ Oct 18 2017, 17:35) . . ....   Oct 19 2017, 17:39
|- - esaulenka   Цитата(k155la3 @ Oct 19 2017, 20:39) TAR ...   Oct 20 2017, 07:45
|- - Jenya7   Цитата(esaulenka @ Oct 20 2017, 13:45) Ка...   Oct 20 2017, 08:43
|- - k155la3   Цитата(esaulenka @ Oct 20 2017, 10:45) Ка...   Oct 21 2017, 13:08
- - XVR   Цитатаchar *checksum_buff = "";Так нельз...   Nov 14 2017, 08:32
- - k155la3   Код[quote] while ( (c = fgetc...   Nov 14 2017, 09:32
- - Jenya7   Цитата(k155la3 @ Nov 14 2017, 14:32) Код...   Nov 14 2017, 09:48


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd August 2025 - 02:19
Рейтинг@Mail.ru


Страница сгенерированна за 0.0138 секунд с 7
ELECTRONIX ©2004-2016