Цитата(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