Also mache ich ein sehr einfaches Programm, das die Eigenschaften einer Datei auf einem UNIX-System ausgibt.Ausdruck st_uid in C Programmierung
Ich habe Stat() verwendet, um dies zu tun.
Allerdings habe ich ein wenig Probleme beim Ausdrucken des Benutzers und der Gruppe für die Datei. Alles andere scheint in Ordnung zu sein.
Dies ist ein kleiner Ausschnitt aus meinem Code (bereits erklärt, die struct):
stat(dir_pointer->d_name, &buf);
printf("%o %s\n", buf.st_nlink, buf.st_uid);
Es mir einen Segmentation Fault ich diesen spezifischen Teil meines Code ausführen jedes Mal gibt. Wäre der Benutzer und die Gruppe als String gekennzeichnet?
EDIT 1:
struct stat buf; // struct for stat
Zeigen, wie buf deklariert ist. –
'buf' ist höchstwahrscheinlich ein' struct stat', es sei denn, Sie verwenden einen beschissenen Compiler, der anderen Code erlaubt. Sie übergeben jedoch "buf.st_uid" vom Typ "uid_t" an "printf" und geben an, dass es sich um eine Zeichenfolge ("% s") handelt. Das ist wahrscheinlich der Grund für deine "SIGSEGV". – 3442
Vielen Dank für Ihre Eingabe, ist es möglich, den Typ 'uid_t' in einen String zu ändern, so dass er auf 'stdout' ausgegeben werden kann? – Yozuru