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

 
 
> Работа с файлами
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
Ответов
andrew_b
сообщение Oct 18 2017, 08:47
Сообщение #2


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

Группа: Свой
Сообщений: 1 975
Регистрация: 30-12-04
Из: Воронеж
Пользователь №: 1 757



Цитата(Jenya7 @ Oct 18 2017, 11:21) *
Я получаю файлы с компьютера. Мне приходит tar файл. Я распаковываю его и тут возникает вопрос
Как можно проверить на стороне эмбедед, что файл не повредился при передаче? Есть CRC для файлов?
Ну если вы распаковываете tar, должны знать, что в каждом блоке есть контрольная сумма.
Код
struct posix_header
{                               /* byte offset */
...
  char chksum[8];               /* 148 */
...
};


Цитата
Но я не нашел функции копирования файла в файл. Все функции копирования либо масив-масив либо файл-масив либо масив-файл.
Ну да. Всё руками.
Go to the top of the page
 
+Quote Post
Jenya7
сообщение Oct 18 2017, 09:09
Сообщение #3


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

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



Цитата(andrew_b @ Oct 18 2017, 13:47) *
Ну если вы распаковываете tar, должны знать, что в каждом блоке есть контрольная сумма.
Код
struct posix_header
{                               /* byte offset */
...
  char chksum[8];               /* 148 */
...
};

а как мне вытащить контрольную сумму?

Цитата(andrew_b @ Oct 18 2017, 13:47) *
Ну да. Всё руками.

Руками получается так
Код
FILE global_files[8];

STATUS TFTP_ProcessFiles(char *arc_name, char *file_name)
{
    int loc_fd, glob_fd;
    char buf[TFTP_BUFF_SIZE];
    
    tarExtract(arc_name,0, FALSE);
    
    for (int i = 0; i < TFTP_FILES_COUNT; i++)
    {
        strcat(file_name, (char *)48+i);
        loc_fd = open(file_name, O_RDONLY, 0644);
        glob_fd = open ????
        
        read(loc_fd, buf, TFTP_BUFF_SIZE);
        
        write(glob_fd, buf, TFTP_BUFF_SIZE);
        
        close(loc_fd);
        close(glob_fd);
        
        remove(loc_fd);    
    }
    
    return OK;
}

проблема тут glob_fd = open ????. как мне взять дескриптор глобального файла? он определен но не инициализирован.

нашел ф-цию для копирования
STATUS cp(const char * src, const char * dest);
но если src известен что я передаю в качестве dest?

Сообщение отредактировал Jenya7 - Oct 18 2017, 11:00
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Jenya7   Работа с файлами   Oct 18 2017, 08:21
|- - 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
- - Jenya7   Такой вопрос. Я должен прочитать из файла провероч...   Nov 14 2017, 06:41
- - 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 Текстовая версия Сейчас: 25th June 2025 - 16:11
Рейтинг@Mail.ru


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