#include "stdlib.h"
#include "sys/stat.h"
#include "stdio.h"
int main(){
struct stat s;
lstat("../", &s);
if(S_ISDIR(s.st_mode) == 0){
printf("yes\n");
}else{
printf("no\n");
}
}
結果:「いいえ」
このコードのさまざまなバリエーション (たとえば、S_ISREG を使用) を実行すると、毎回予想とは逆の結果が得られます。したがって、「../」を含む S_ISREG の場合、「yes」となります。私はしばらくの間、この種のもの(ファイルのアクセス許可、ディレクトリの作成など)をいじっていたので、何かを台無しにしたのか、それとも何なのかわかりません。どんな助けでも大歓迎です。