基本的に、クラス用の UNIX ls コマンドのクローンを作成する必要があり、ほとんどすべてが機能しています。ファイルがシンボリック リンクかどうかを確認する方法がわかりません。のマニュアルページから、値が定義されstat()
ていることがわかります。mode_t
S_IFLNK
これは、ファイルがシンボリックリンクであるかどうかを確認しようとしている方法ですが、運が悪いです(注意、stbufはstat()
inodeデータを返すバッファです):
switch(stbuf.st_mode & S_IFMT){
case S_IFLNK:
printf("this is a link\n");
break;
case S_IFREG:
printf("this is not a link\n");
break;
}
私のコードは常に印刷this is not a link
されますが、実際の ls コマンドがそう言っているので、上記のファイルがシンボリックリンクであることを知っています。さらに、シンボリックリンクを作成しました...
誰かが私が間違っているかもしれないことを見つけることができますか? 助けてくれてありがとう!