Как получить адрес файла?

Я хочу знать адрес файла.

Я могу открыть файл, используя fopen () или открыть, тогда я использую fp для чтения содержимого, но возможно ли получить содержимое по адресу, я знаю, что мы читаем из streamа вместо файла, но даже то, что является начальный адрес этого streamа.

Я видел FILE sturcture, там один указатель на базу , я прочитал его значение, но это 0. Я не понял, что это такое, но что это базовый адрес streamа.

Пожалуйста, расскажите мне об этом.

Спасибо

Вещи в памяти (ОЗУ) имеют адреса, которые можно прочитать и записать. Файл на диске не имеет адреса. Вы можете только прочитать файл в памяти, а затем просмотреть его содержимое.

Или вы можете использовать fseek в API streamов для поиска определенной позиции в файле и начать читать его в памяти оттуда или что-то еще.

Чтобы открыть и прочитать файл на C, вы можете сделать что-то вроде этого:

 /* fread example: read a complete file */ #include  #include  int main () { FILE * pFile; long lSize; char * buffer; size_t result; pFile = fopen ( "myfile.bin" , "rb" ); if (pFile==NULL) {fputs ("File error",stderr); exit (1);} // obtain file size: fseek (pFile , 0 , SEEK_END); lSize = ftell (pFile); rewind (pFile); // allocate memory to contain the whole file: buffer = (char*) malloc (sizeof(char)*lSize); if (buffer == NULL) {fputs ("Memory error",stderr); exit (2);} // copy the file into the buffer: result = fread (buffer,1,lSize,pFile); if (result != lSize) {fputs ("Reading error",stderr); exit (3);} /* the whole file is now loaded in the memory buffer. */ // terminate fclose (pFile); free (buffer); return 0; } 

Файлы с отображением памяти могут сделать это, но они являются специфичными для ОС функциями (поддерживаются большинством систем) и не предоставляются стандартной библиотекой.