私は、UNIXシステム上のファイルのプロパティを表示する非常に簡単なプログラムを作っています。Cで書かれたst_uidプログラミング
私はこれを行うためにstat()を使用しています。
ただし、ファイルのユーザーとグループを印刷するのに少し問題があります。他のすべては大丈夫だと思われます。
これは(すでに構造体を宣言した)私のコードの小さなスニペットです:
stat(dir_pointer->d_name, &buf);
printf("%o %s\n", buf.st_nlink, buf.st_uid);
それは私が私のコードのこの特定の部分を実行するたびにセグメンテーションフォールトを与えます。ユーザとグループは文字列として表示されますか?
EDIT 1:
この行でstruct stat buf; // struct for stat
bufがどのように宣言されているかを示します。 –
'buf'は' struct stat'の可能性が高いです。そうでないコードを許可する厄介なコンパイラを使用している場合を除きます。しかし、 'uid_t'型の' buf.st_uid'を 'printf'に渡し、文字列(' "%s" ')であることを示しています。それがあなたの 'SIGSEGV'の原因でしょう。 – 3442
入力いただきありがとうございます。 'uid_t'型を文字列に変更して 'stdout'に出力することは可能ですか? – Yozuru