2016-11-30 8 views
0

私はstat()です(Kubuntu GNU/Linux 16.04上)。この奇妙な値は0100600の8進数(10進数33152)です。私がビット単位で - S_IFMT(これは0170000の8進数)であれば、私は0600の8進数を得る。どういう意味ですか? stat.hリストは以下の値:symlinkのst_modeが奇妙な値を持っています

/* File types. */ 
#define __S_IFDIR 0040000 /* Directory. */ 
#define __S_IFCHR 0020000 /* Character device. */ 
#define __S_IFBLK 0060000 /* Block device. */ 
#define __S_IFREG 0100000 /* Regular file. */ 
#define __S_IFIFO 0010000 /* FIFO. */ 
#define __S_IFLNK 0120000 /* Symbolic link. */ 
#define __S_IFSOCK 0140000 /* Socket. */ 

私は012万、ない0600(すべてのオクタル)を参照してくださいことを期待しています。何がありますか?

+1

symlinkの 'stat'は、シンボリックリンク自体ではなく、シンボリックリンクのターゲットのステータスを返します。あなたのシンボリックリンクは、明らかに、権限がrw -------の正規ファイルを指しています。あなたが使っているシステムコールのマニュアルページを読むことを検討するかもしれません。 –

答えて

0

@ dave_thompson_085の観察に基づいて:実際には、stat()がシンボリックリンクに続きます。私はlstat()と呼ぶべきです - これはまったく同じことですが、リンクをたどることはありません。

関連する問題