Я новичок в minix 3.2.1 и хотел бы изменить определенный системный вызов и его вывод. Например, когда я набираю mkdir Newdirectory, я хочу видеть на экране New dir -> myNewDirectory 755 (755 означает права доступа). Как я мог этого добиться?
Как изменить определенный системный вызов в minix 3.2.1?
Ответы (1)
прежде всего вам нужно найти правильный файл для изменения. В вашем примере вы можете изменить команду mkdir, изменив/добавив код в файле usr/src/servers/vfs/open.c. Если вы посмотрите файл open.c, вы увидите, что там есть функция do_mkdir
. Ты можешь использовать :
printf("New dir -> %s",fullpath);
do_mkdir на самом деле имеет имя нового каталога в массиве полного пути, поэтому вам не нужно создавать переменную самостоятельно. Что касается прав доступа, вы можете использовать S_IRWXU/S_IRWXG/S_IRWXO, чтобы увидеть права доступа (для получения дополнительной информации посетите http://pubs.opengroup.org/onlinepubs/7908799/xsh/sysstat.h.html). Например, вы можете хранить права доступа в целочисленных переменных:
if(bits & S_IRUSR) x = x + 4;
if(bits & S_IWUSR) x = x + 2;
if(bits % S_IXUSR) x = x + 1;
Просто сделайте то же самое для группы и других прав, и все готово.
Имейте в виду, что вам нужно будет скомпилировать файл, чтобы применить изменения. Перейдите в каталог usr/src/realeasetools и используйте команду make hdboot
в терминале. Перезапустите, и вы увидите изменения.