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 目錄檔案,目錄是特殊的檔案,目...