Самьюэл Алекс
Шрифт:
8.1. Команда strace
Прежде чем изучать системные вызовы, полезно познакомиться с командой
В результате будет получено несколько экранов выходной информации. Каждая строка соответствует одному системному вызову. В строке указываются имя вызова, его аргументы (или их сокращенные обозначения, если аргументы слишком длинные) и возвращаемое значение. По возможности команда
26
Команда
В случае команды
Первый аргумент — это имя запускаемой программы. За ним идет список аргументов, состоящий из одного элемента. Дальше указан список переменных среды, который команда
Следующие примерно 30 строк отражают работу механизма загрузки стандартной библиотеки языка С из библиотечного файла. Ближе к концу наконец встречаются системные вызовы, связанные непосредственно с работой программы. Системный вызов
27
В Linux семейство функции
Заметьте, что команда strace показала метки полей структуры, в которой хранятся аргументы. Эта структура заполняется в системном вызове: Linux помещает в поле
Системный вызов
Эта строка может отобразиться искаженной, поскольку вывод программы
8.2. Функция access: проверка прав доступа к файлу
Функция
Функция
Если второй аргумент равен
Программа, показанная в листинге 8.1, с помощью функции