Linux系統程式設計(七)檔案許可權系統呼叫
阿新 • • 發佈:2020-12-28
技術標籤:Linux環境程式設計linuxunix
Linux系統程式設計(七)檔案許可權系統呼叫
7.1 access 判斷檔案許可權/檔案是否存在
- 包含標頭檔案
#include <unistd.h>
- 函式原型
int access(const char *pathname, int mode);
- 引數
pathname
:檔案路徑mode
:檔案許可權- R_OK :判斷讀許可權
- W_OK:判斷寫許可權
- X_OK :判斷執行許可權
- F_OK :判斷檔案是否存在
- 返回值
- 呼叫成功,返回0
- 呼叫失敗,返回-1
- access 示例程式碼
#include <unistd.h>
#include <stdio.h>
int main(){
int ret = access("a.txt", F_OK);
if (ret == -1){
perror("access");
return -1;
}
printf("檔案存在");
return 0;
}
7.2 chmod 修改檔案許可權
- 包含標頭檔案
#include <sys/stat.h>
- 函式原型
int chmod(const char *pathname, mode_t mode);
- 引數
pathname
:檔案路徑mode
:需要修改的檔案許可權
- 返回值
- 呼叫成功,返回0
- 呼叫失敗,返回-1
- chmod 示例程式
#include <stdio.h>
#include <sys/stat.h>
int main(){
int ret = chmod("a.txt", 0775);
if (ret == -1){
perror("chmod");
return -1;
}
return 0;
}
編譯執行結果
7.3 chown 修改檔案所在組 / 所有者
7.4 truncate 縮減 / 擴充套件檔案至指定大小
- 包含標頭檔案
#include <unistd.h>
#include <sys/types.h>
- 函式原型
int truncate(const char *path, off_t length);
- 引數
pathname
:需要修改的檔案路徑length
:劃分檔案的大小
- 返回值
- 呼叫成功,返回0
- 呼叫失敗,返回-1
- truncate 示例程式
#include <unistd.h>
#include <sys/types.h>
#include <stdio.h>
int main(){
int ret = truncate("a.txt", 100);
if (ret == -1){
perror("truncate");
return -1;
}
return 0;
}
編譯執行