2016-04-16 5 views
0

Ich bin neu bei Minix 3.2.1 und ich möchte einen bestimmten Systemaufruf und seine Ausgabe ändern. Wenn ich zum Beispiel mkdir Newdirectory eintippe, möchte ich auf dem Bildschirm New dir -> myNewDirectory 755 (755 steht für die Zugriffsrechte) sehen. Wie könnte ich das erreichen?Wie ändert man einen bestimmten Systemaufruf in minix 3.2.1?

+0

Es ist nicht genug. Schreiben Sie mehr über: Was haben Sie versucht, welche Probleme haben Sie gefunden usw. – peterh

Antwort

0

Zunächst müssen Sie die richtige Datei zum Ändern finden. In Ihrem Beispiel können Sie den mkdir-Befehl ändern, indem Sie Code in der Datei usr/src/servers/vfs/open.c ändern/hinzufügen. Wenn Sie in die Datei open.c schauen, werden Sie sehen, dass dort eine do_mkdir Funktion ist. Sie können:

printf("New dir -> %s",fullpath); 

do_mkdir hat tatsächlich den Namen des neuen Verzeichnisses in der fullpath Array so eine Variable nicht selbst machen müssen. Wie für die Zugriffsrechte können Sie S_IRWXU/S_IRWXG/S_IRWXO verwenden, um die Zugriffsrechte zu sehen (für weitere Informationen besuchen Sie http://pubs.opengroup.org/onlinepubs/7908799/xsh/sysstat.h.html). Zum Beispiel können Sie die Zugriffsrechte in Integer-Variablen speichern:

if(bits & S_IRUSR) x = x + 4; 
if(bits & S_IWUSR) x = x + 2; 
if(bits % S_IXUSR) x = x + 1; 

Genau das gleiche tun für die Gruppe und andere Rechte und dort gehen Sie

Denken Sie daran, die Sie benötigen, um die Datei in kompilieren um die Änderungen auszuführen. Gehen Sie zum Verzeichnis usr/src/realeasetools und verwenden Sie den Befehl make hdboot im Terminal. Starten Sie neu und Sie werden die Änderungen sehen.

Verwandte Themen