一、系統呼叫列表
int chmod (const char *path,mode_t mode);
int chown (const char *path,uid_t owner,gid_t group);
int unlink (const char *path);
int link (const char *oldpath,const char *newpath);
int symlink (const char *oldpath,const char *newpath);
int mkdir (const char *path,mode_t mode);
int rmdir (const char *path);
int chdir (const char *path);
char * getcwd (char *buf,size_t size);
dir * opendir (const char *name);
struct dirent * readdir (dir *dirp);
long int telldir (dir *dirp);
void seekdir (dir *dirp,long int loc);
int closedir (dir *dirp);
二、系統呼叫說明
1、chmod
說明:改變檔案(或目錄)的訪問許可權。
原型:int chmod (const char *path,mode_t mode);
用法:#include
#include
引數:path,給出了檔案路徑
mode,設定檔案的許可權,mode取值如下:
s_isuid 04000 set user id on execution
s_isgid 02000 set group id on execution
s_isvtx 01000 sticky bit
s_irusr 00400 read by owner
s_iwusr 00200 write by owner
s_ixusr 00100 execute/search by owner
s_irgrp 00040 read by group
s_iwgrp 00020 write by group
s_ixgrp 00010 execute/search by group
s_iroth 00004 read by others
s_iwoth 00002 write by others
s_ixoth 00001 execute/search by others
返回值:成功,返回0;失敗,返回-1,同時errno置位。
2、chown
說明:改變檔案的所有者和組。
原型:int chown (const char *path,uid_t owner,gid_t group);
用法:#include
#include
引數:path,檔案路徑
uid_t,使用者id
gid_t,組id
返回值:成功,返回0;失敗,返回-1,同時errno置位。
3、unlink
說明:從檔案系統刪除乙個名字,如果這個名字是乙個檔案的最後乙個連線,並且沒有程序開啟它,則這個檔案被刪除,空間被釋放。如果這個名字是乙個檔案的最後乙個連線,但是有其他程序開啟了這個檔案,那麼這個檔案就會一直保持存在,直到最後乙個檔案描述符被關閉。如果這個名字關聯到乙個符號連線,則這個連線被刪除。如果這個名字關聯到乙個socket,fifo或者裝置,那麼這個名字被刪除,但是使用這個物件的程序可以繼續使用它。
原型:int unlink (const char *path);
用法:#include
引數:path,檔案路徑
返回值:成功,返回0;失敗,返回-1,同時errno置位。
4、link
說明:為已有的檔案建立乙個新的連線。
原型:int link (const char *oldpath,const char *newpath);
用法:#include
引數:oldpath,原檔案路徑
newpath,檔案的新路徑
返回值:成功,返回0;失敗,返回-1,同時errno置位。
5、symlink
說明:建立乙個名為newpath的符號連線,該連線包含oldpath。
原型:int symlink (const char *oldpath,const char *newpath);
用法:#include
引數:oldpath,原檔案路徑
newpath,檔案的新路徑
返回值:成功,返回0;失敗,返回-1,同時errno置位。
6、mkdir
說明:建立乙個目錄。
原型:int mkdir (const char *path,mode_t mode);
用法:#include
#include
引數:path,目錄名
mode,給出了目錄的許可權,mode要服從umask的設定。
返回值:成功,返回0;失敗,返回-1,如果發生錯誤,errno置位。
7、rmdir
說明:刪除乙個空目錄。
原型:int rmdir (const char *path);
用法:#include
引數:path,目錄名。
返回值:成功,返回0;失敗,返回-1,同時errno置位。
8、chdir
說明:改變當前的工作目錄到path指定的路徑。
原型:int chdir (const char *path);
用法:#include
引數:path,指定當前工作目錄的路徑。
返回值:成功,返回0;失敗,返回-1,同時errno置位。
9、getcwd
說明:獲取當前工作目錄的絕對路徑。
原型:char * getcwd (char *buf,size_t size);
用法:#include
引數:buf,存放當前工作目錄的緩衝區。
size,buf的長度。
返回值:成功,返回指向buf的指標,如果目錄名字長度超出了size,則返回null。
10、opendir
說明:開啟乙個目錄流,這個流位於目錄裡的第一項。
原型:dir * opendir (const char *name);
用法:#include
#include
引數:name,目錄名。
返回值:成功,返回目錄流指標;失敗,返回null,同時errno置位。
11、 readdir
原型:struct dirent * readdir (dir *dirp);
用法:#include
#include
引數:dirp,目錄流指標。
返回值:成功,返回乙個指向dirent struct的指標;發生錯誤,或達到檔案結尾(eof),返回null,發生錯誤時,errno置位。
12、telldir
說明:返回目錄流裡的當前位置。
原型:long int telldir (dir *dirp);
用法:#include
#include
引數:dirp,目錄流指標。
返回值:成功,返回目錄流中當前位置;失敗,返回-1,同時errno置位。
13、seekdir
原型:void seekdir (dir *dirp,long int loc);
用法:#include
#include
引數:dirp,目錄流指標。
loc,用來設定指標位置。
返回值:無。
14、closedir
說明:關閉目錄流。
原型:int closedir (dir *dirp);
用法:#include
#include
引數:dirp,目錄流指標。
返回值:成功,返回0;失敗,返回-1,同時errno置位。
linux系統呼叫之檔案系統操作
access 確定檔案的可訪問性 chdir 改變當前工作目錄 fchdir 參見chdir chmod 改變檔案方式 fchmod 參見chmod chown 改變檔案的屬主或使用者組 fchown 參見chown lchown 參見chown chroot 改變根目錄 stat 取檔案狀態資訊 ...
系統呼叫之檔案訪問
1 write 系統呼叫 系統呼叫write 的作用是,把緩衝區 buf的前 nbytes 位元組寫入到與檔案描述符 fildes 關聯的檔案中,同時它會返回實際寫入的位元組數。如果返回 0,就表示為寫出任何資料 如果是 1,就表示在 write 系統呼叫中出現了錯誤,對應的錯誤碼儲存在全域性變數 ...
Linux系統呼叫之open , close
open函式可以開啟或建立乙個檔案。include include include intopen constchar pathname,intflags intopen constchar pathname,intflags,mode t mode 返回值 成功返回新分配的檔案描述符,出錯返回 1...