それとも別のボリュームがマウントされたマウントポイントなのかを
その時々で調べる必要に迫られました。
最初は"lost+found"ディレクトリがあるかどうかで判定しようと考えたのですが、
これだと完全ではないので何か方法はないのか調べてみると、
"/proc/self/mountinfo"の出力から分かることにたどり着きました。
例えば、"/opt"がマウントポイントかどうかは以下のようなコード(C言語)で判別できます。
FILE *fp;
int f;
char buff[128];
if((fp=fopen("/proc/self/mountinfo","r"))==NULL)
return;
f=1;
while(fgets(buff,sizeof(buff),fp)){
if(strstr(buff,"/opt")){
f=0;
break;
}
}
if(f){
// /opt is normal directory.
}
else{
// /opt is mountpoint.
}
fclose(fp);
こういうことが必要になるケースはそうはないと思いますが、
組み込み用途では活用できるかもしれません。
0 件のコメント:
コメントを投稿