Gibt es eine C-Funktion, um Berechtigungen für eine Datei zu erhalten?

Ich schreibe ein c-Programm, das unter UNIX ausgeführt werden soll, und versuche, den Befehl chmod zu verwenden. Nach dem Lesen der Manpages weiß ich, dass chmod zwei Parameter benötigt. Erstens die Berechtigungsbits, zweitens die zu ändernde Datei. Ich möchte das bitweise ODER der aktuellen und vom Benutzer eingegebenen Berechtigungsbits der Datei nehmen und das an chmod () übergeben, um die Berechtigungen der Datei zu ändern.

ich fand dieaccess() Funktion, aber ich habe Probleme damit, die Berechtigungsbits der angegebenen Datei abzurufen.

Was ich gerade habe, ist:

octalPermissionString = strtol(argv[1], (char**)NULL, 8);
if(chmod(argv[2], octalPermissionString | (access(argv[2], octalPermissionString)) < 0) {
                    fprintf(stderr, "Permissions of file %s were not changed.\n");
                }

woher:

argv [1] enthält eine Zeichenfolge mit einer dreistelligen Dezimalzahl, die der Benutzer eingibt, um sie in eine Oktalzahl umzuwandeln und dann als Berechtigungsbit für die bitweise ODER-Verknüpfung zu verwenden.

argv [2] ist die Datei, deren Berechtigung geändert werden soll, ebenfalls vom Benutzer angegeben.

octalPermissionString ist eine lange Zeitspanne, um die Oktalkonvertierung von Benutzereingaben zu speichern.

Gibt es / Gibt es andere Funktionen, die die Berechtigungsbits einer bestimmten Datei zurückgeben können?

EDIT: fehlende enge Klammer

Antworten auf die Frage(2)

Ihre Antwort auf die Frage