Таблица строк содержит последовательности символов, завершенные символами NUL, которые обычно называются строками. В этих строках обычно хранятся имена разделов и символов объектных файлов. Для идентификации строк применяется оглавление таблицы, в котором указаны смещения строк. Первый байт (смещение 0) содержит символ NUL. Последний байт таблицы также должен содержать символ NUL. Элемент оглавления со смещением 0 ссылается либо на строку без имени, либо на строку с пустым именем, в зависимости от ситуации. Оглавление может быть пустым; в этом случае в поле sh_size заголовка раздела должен быть указан 0. Пустая таблица строк может содержать непустое оглавление.
В поле sh_name заголовка раздела содержится оглавление (см. описание
поля e_shstrndx заголовка ELF). Ниже приведен пример таблицы строк
размером 25 байт.
Смещение | +0 | +1 | +2 | +3 | +4 | +5 | +6 | +7 | +8 | +9 |
---|---|---|---|---|---|---|---|---|---|---|
0 | \0 | n | a | m | e | . | \0 | V | a | r |
10 | i | a | b | l | e | \0 | a | b | l | e |
20 | \0 | \0 | x | x | \0 |
Индексы строк
Индекс | Строка |
---|---|
0 | нет |
1 | name. |
7 | Variable |
11 | able |
16 | able |
24 | пустая строка |
Как показано в примере, оглавление таблицы строк может ссылаться на любой байт раздела. В таблице могут содержаться одинаковые строки; ссылки на подстроки не допускаются, однако может быть указано несколько ссылок на одну строку. Допускается и ситуация, когда на строку вообще нет ссылки.