В Linux даже обычный syscall начинается с макроса.
В Linux даже обычный syscall начинается с макроса. Например: `SYSCALL_DEFINE3(write, unsigned int, fd, const char __user *, buf, size_t, count)` После препроцессора это превращается сразу в несколько функций: - `sys_write` - `__se_sys_write` - `__do_sys_write` Одна строка описывает системный вызов, а C-препроцессор через макросы и token pasting собирает остальную обвязку автоматически. Именно поэтому код ядра Linux часто выглядит коротко, пока не начнёшь разворачивать макросы.
Канал в каталоге Максиметера
1 259 подписчиков · IT и технологии