小記 linux檔案元屬性

2021-07-15 06:25:21 字數 2208 閱讀 8995

linux檔案元屬性是指檔案的inode號、擁有者、大小、修改時間等屬性,在linux中用以下結構體表示

struct stat ;
1.  獲取檔案屬性

#include #include #include int stat (const char *path, struct stat *buf);

int fstat (int fd, struct stat *buf);

int lstat (const char *path, struct stat *buf);

其中lstat函式是用一獲取符號鏈結的屬性

==>例程:獲取檔案的大小

#include #include #include #include int main (int argc, char *argv)

ret = stat (argv[1], &sb);

if (ret)

printf ("%s is %ld bytes\n",

argv[1], sb.st_size);

return 0;

}

==>例程:獲取檔案的型別

#include #include #include #include int main (int argc, char *argv)

ret = stat (argv[1], &sb);

if (ret)

printf ("file type: ");

switch (sb.st_mode & s_ifmt)

return 0;

}

其中sb.st_mode & s_ifmt運算是用於消除無干位的資料,得到真實的檔案型別。

2. 修改許可權

#include #include int chmod (const char *path, mode_t mode);

int fchmod (int fd, mode_t mode);

==>例程:修改檔案許可權

int ret;

/** set 'map.png' in the current directory to

* owner-readable and -writable. this is the

* same as 'chmod 600 ./map.png'.

*/ret = chmod ("./map.png", s_irusr | s_iwusr);

if (ret)

perror ("chmod");

3. 修改所有者與所有組

#include #include int chown (const char *path, uid_t owner, gid_t group);

int lchown (const char *path, uid_t owner, gid_t group);

int fchown (int fd, uid_t owner, gid_t group);

==>例程:修改檔案所有組

struct group *gr;

int ret;

/** getgrnam() returns information on a group

* given its name.

*/gr = getgrnam ("officers");

if (!gr)

/* set manifest.txt's group to 'officers' */

ret = chown("manifest.txt", -1, gr->gr_gid);

if (ret)

perror ("chown");

==>例程:修改檔案為root使用者所有

/*

* make_root_owner - changes the owner and group of the file

* given by 'fd' to root. returns 0 on success and −1 on

* failure.

*/int make_root_owner (int fd)

其他注意內容:擴充套件屬性

檔案元屬性中st mode詳解

作業系統中,有關檔案的大部分屬性存放在磁碟中的i節點,其餘的檔案資訊i節點編號和檔名稱存放在其父目錄的目錄項中 可以使用系統呼叫stat或是lstat得到乙個檔案的所有屬性,這兩個函式返回的是乙個struct stat的資料結構。本文主要講解關於struct stat資料結構的第乙個欄位st mod...

Linux檔案隱藏屬性

檔案的隱藏屬性chattr lsattr 1 chattr asaci a 增加該屬性後,表示檔案或目錄的atime將不可修改 s 增加該屬性後,會將資料同步寫入磁碟中 a 增加該屬性後,表示只能追加不能刪除,非root使用者不能設定該屬性 c 增加該屬性後,表示自動壓縮該檔案,讀取時會自動解壓 i...

linux檔案屬性

linux檔案屬性1 首先檢視一下 ls l 檢視檔案的檔案屬性 上面顯示檔案屬性一共7個常見的字段。各個欄位的含義 1.第乙個字段 檔案許可權 就是 或者r w x的組合。一共10位。左面開始數起,a 第一位 檔案型別 常規檔案 系統普通檔案。d directory 目錄檔案,目錄是特殊的檔案,目...