Изучаю программинг под Linux, в частности системные вызовы Многочасовые поиски нормального справочника по системным вызовам завершились, по сути, тремя ссылками: http://linuxdoc.ru/sys-doc.html http://www.digilife.be/quickreferences/qrc/linux system call quick reference.pdf http://syscalls.kernelgrok.com/ Всё остальное - примерно то же самое, только с разным дизайном. Ну или учебник какой-нибудь о Unix в целом (хоть и на русском). Так вот, на практике придётся использовать все 3 справочника... 1. В первом находить нужную функцию и читать её описание (неплохо, что там всё по-русски). 2. Во втором находить номер функции по названию. 3. Третий использовать, когда информации из 1-го недостаточно (там расписано подробнее и кол-во функций значительно больше... и даже исходники есть). У кого есть, киньте, плиз, ссылкой на удобный, полный, структурированный справочник, в котором будут указаны (важно!) номера функций и значения констант (типа EBADF и т.д.). Что дескриптор стандартного ввода = 0, а вывода = 1 я уже понял, но сдаётся мне, есть там ещё куча подобных штук, искать которые опять же придётся в example'ах на просторах всея интернета, что не очень удобно... А если там ещё и примеры использования будут, то будет вообще супер (хотя не критично). В частности, вот такой вопрос у меня возник: brk и sbrk вроде разные функции. А номер функции (eax) как будто один и тот же... Как это может быть? В чём подвох? Или система по значению передаваемого параметра определяет (типа > 0x8000000, значит brk, иначе sbrk)?
Зачем гадать, все говорят что оно опенсурсно - открыл сурец да посмотрел В реале вероятность что вам кто то поможет овер ноль. Так же никто не знает как там что устроено на должном уровне.
как вариант http://blog.rchapman.org/posts/Linux_System_Call_Table_for_x86_64/ + там описано как получить значения констант Сами функции вы можете посмотреть тупо в манах тут таблица https://github.com/torvalds/linux/blob/master/arch/x86/entry/syscalls/syscall_64.tbl Собственно все есть в сорцах. Ну если вы читали доку то там черным по белому написано, что sbrk не является системным вызовом
TermoSINteZ, спасибо за линк. А то у меня только x86 варианты были. С sbrk разобрался, сан написал её на основе brk Т.е., судя по всему, асмовских inc-ов для Linux'а не найти?
Не видел такого в природе. Да и никто не пишет под линукс на асме целые проги - обычно только кусочки.
Jin X, можете использовать функцию syscall из libc, чтобы вызывать системный вызов. Как вариант, можете написать на perl парсер заголовочного файла, который генерил бы номера системных вызовов в синтаксисе асма.
открытые коды + песочница для их прогонки + форумы/книги для сбора базовой инфы. каких-то супер манов от А до Я едва ль получится найти.