Что такое индикатор Link (тип файла) в парсере tar

Я хочу знать, тип файла HTML-файл присутствует в файле tar. Я сохранил этот tar-файл в буфере, и я знаю, что могу узнать размер файла в буфере местоположения [124], но я хочу знать, что - (1.) Я хочу знать, что если файл, присутствующий в tar, HTML-файл Есть идеи как это сделать?? Я думаю, что я знаю файл Link Link Indicator(но я не уверен). Может ли кто-нибудь объяснить, пожалуйста, как это сделать?

(2.) Однажды, если я уверен, что у меня есть html-файл внутри tar-файла, тогда я хочу поместить содержимое этого html-файла в tar-файл.

В tar-файле также присутствует много других файлов (не только html-файл. Обратите внимание на эту строку, поэтому я не знаю, как выглядит html-файл)

Есть идеи как этого добиться??

2 ответа

Ах, ты имеешь в виду typeflag поле. Нет, это не для такого типа файла, он говорит, является ли файл обычным файлом, каталогом, жесткой ссылкой, программной ссылкой, специальным файлом устройства и т. Д.

Ваша система (если она совместима с POSIX) должна иметь <tar.h> системный заголовочный файл (обычно в /usr/include), который содержит эти флаги. Или вы можете увидеть официальную спецификацию POSIX.

@ Йоахим, спасибо за ваше предложение, наконец, я сделал это, как показано ниже, вы можете увидеть, если вы хотите -

char * StartPosition;

    size_t skip= 0;
    char HtmlFileContents [200000];
    char contents [8000];
    do
    { 
            int SizeOfFile = CreateOctalToInteger(&buffer[skip+124],11);
            size_t distance= ((SizeOfFile%512) ? SizeOfFile + 512 - (SizeOfFile%512) : SizeOfFile );
            skip += distance + 512;
            memcpy(contents,&buffer[skip],100);
            if (StartPosition=strstr(contents,".html"))
            {
                MessageBox(m_hwndPreview,L"finally string is copied",L"BTN WND6",MB_ICONINFORMATION);
                int SizeOfFile = CreateOctalToInteger(&buffer[skip+124],11);
                memcpy(HtmlFileContents,&buffer[skip+512],SizeOfFile);
                break;
            }


    }
    while(strcmp(contents,".html") != NULL);

и это может работать для каждого файла, хранящегося в файле tar. нам просто нужно указать расширение файла (в моем случае.html), и этот код даст нам его содержимое.

Другие вопросы по тегам