Я нашел пару похожих сообщений:
https://unix.stackexchange.com/question ... inode-data -структура
https://unix.stackexchange.com/question ... -a-file-in -disk
Но на мой вопрос ничего не отвечает. У меня есть процесс, который постоянно читает файл, и я хотел бы получить физический адрес файла, который он постоянно читает. Я знаю, какой файл он читает. Рассматриваемый процесс не использует mmap.
Как мне получить физический адрес этого файла? Я предполагаю, что смогу получить его адрес в оперативной памяти.
Предпочтительно, если возможно, использовать утилиты строки cmd вместо написания приложения на C.
Рассматриваемый процесс:
int main(void)
{
int iFd = open("/some/path/file.txt",O_RDWR);
if (iFd < 0)
{
fprintf(stderr, "Failed to open file: %s\n", strerror(errno));
return -1;
}
while(1)
{
uint8_t tmp[10]={0};
read(iFd, tmp, sizeof tmp);
(void) tmp;
}
close(iFd);
return 0;
}
Я просмотрел /proc, но файл там не отображается:
# cat /proc//maps
555fa58000-555fa59000 r-xp 00000000 b3:02 34817 /some/path/myProcess
555fa68000-555fa69000 r--p 00000000 b3:02 34817 /some/path/myProcess
555fa69000-555fa6a000 rw-p 00001000 b3:02 34817 /some/path/myProcess
7fb3970000-7fb3ac3000 r-xp 00000000 b3:02 786 /lib/libc-2.31.so
7fb3ac3000-7fb3ad3000 ---p 00153000 b3:02 786 /lib/libc-2.31.so
7fb3ad3000-7fb3ad6000 r--p 00153000 b3:02 786 /lib/libc-2.31.so
7fb3ad6000-7fb3ad9000 rw-p 00156000 b3:02 786 /lib/libc-2.31.so
7fb3ad9000-7fb3adc000 rw-p 00000000 00:00 0
7fb3adc000-7fb3afd000 r-xp 00000000 b3:02 778 /lib/ld-2.31.so
7fb3b04000-7fb3b06000 rw-p 00000000 00:00 0
7fb3b0a000-7fb3b0b000 r--p 00000000 00:00 0 [vvar]
7fb3b0b000-7fb3b0c000 r-xp 00000000 00:00 0 [vdso]
7fb3b0c000-7fb3b0d000 r--p 00020000 b3:02 778 /lib/ld-2.31.so
7fb3b0d000-7fb3b0f000 rw-p 00021000 b3:02 778 /lib/ld-2.31.so
7ff5eb9000-7ff5eda000 rw-p 00000000 00:00 0 [stack]
Подробнее здесь: https://stackoverflow.com/questions/791 ... ile-in-ram
Как получить физический адрес файла в оперативной памяти? [закрыто] ⇐ Linux
-
Anonymous
1729446596
Anonymous
Я нашел пару похожих сообщений:
https://unix.stackexchange.com/questions/279729/how-to-see-information-inside-inode-data -структура
https://unix.stackexchange.com/questions/581323/is-it-possible-to-find-the-physical-address-of-a-file-in -disk
Но на мой вопрос ничего не отвечает. У меня есть процесс, который постоянно читает файл, и я хотел бы получить физический адрес файла, который он постоянно читает. Я знаю, какой файл он читает. Рассматриваемый процесс не использует mmap.
Как мне получить физический адрес этого файла? Я предполагаю, что смогу получить его адрес в оперативной памяти.
Предпочтительно, если возможно, использовать утилиты строки cmd вместо написания приложения на C.
Рассматриваемый процесс:
int main(void)
{
int iFd = open("/some/path/file.txt",O_RDWR);
if (iFd < 0)
{
fprintf(stderr, "Failed to open file: %s\n", strerror(errno));
return -1;
}
while(1)
{
uint8_t tmp[10]={0};
read(iFd, tmp, sizeof tmp);
(void) tmp;
}
close(iFd);
return 0;
}
Я просмотрел /proc, но файл там не отображается:
# cat /proc//maps
555fa58000-555fa59000 r-xp 00000000 b3:02 34817 /some/path/myProcess
555fa68000-555fa69000 r--p 00000000 b3:02 34817 /some/path/myProcess
555fa69000-555fa6a000 rw-p 00001000 b3:02 34817 /some/path/myProcess
7fb3970000-7fb3ac3000 r-xp 00000000 b3:02 786 /lib/libc-2.31.so
7fb3ac3000-7fb3ad3000 ---p 00153000 b3:02 786 /lib/libc-2.31.so
7fb3ad3000-7fb3ad6000 r--p 00153000 b3:02 786 /lib/libc-2.31.so
7fb3ad6000-7fb3ad9000 rw-p 00156000 b3:02 786 /lib/libc-2.31.so
7fb3ad9000-7fb3adc000 rw-p 00000000 00:00 0
7fb3adc000-7fb3afd000 r-xp 00000000 b3:02 778 /lib/ld-2.31.so
7fb3b04000-7fb3b06000 rw-p 00000000 00:00 0
7fb3b0a000-7fb3b0b000 r--p 00000000 00:00 0 [vvar]
7fb3b0b000-7fb3b0c000 r-xp 00000000 00:00 0 [vdso]
7fb3b0c000-7fb3b0d000 r--p 00020000 b3:02 778 /lib/ld-2.31.so
7fb3b0d000-7fb3b0f000 rw-p 00021000 b3:02 778 /lib/ld-2.31.so
7ff5eb9000-7ff5eda000 rw-p 00000000 00:00 0 [stack]
Подробнее здесь: [url]https://stackoverflow.com/questions/79107687/how-to-get-the-physical-address-of-a-file-in-ram[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия