一、系统调用列表
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 <sys/stat.h>
#include <sys/types.h>
参数: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 <sys/types.h>
#include <unistd.h>
参数:path,文件路径
uid_t,用户ID
gid_t,组ID
返回值:成功,返回0;失败,返回-1,同时errno置位。
3、unlink
说明:从文件系统删除一个名字,如果这个名字是一个文件的最后一个连接,并且没有进程打开它,则这个文件被删除,空间被释放。如果这个名字是一个文件的最后一个连接,但是有其他进程打开了这个文件,那么这个文件就会一直保持存在,直到最后一个文件描述符被关闭。如果这个名字关联到一个符号连接,则这个连接被删除。如果这个名字关联到一个socket,fifo或者设备,那么这个名字被删除,但是使用这个对象的进程可以继续使用它。
原型:int unlink (const char *path);
用法:#include <unistd.h>
参数:path,文件路径
返回值:成功,返回0;失败,返回-1,同时errno置位。
4、link
说明:为已有的文件创建一个新的连接。
原型:int link (const char *oldpath,const char *newpath);
用法:#include <unistd.h>
参数:oldpath,原文件路径
newpath,文件的新路径
返回值:成功,返回0;失败,返回-1,同时errno置位。
5、symlink
说明:创建一个名为newpath的符号连接,该连接包含oldpath。
原型:int symlink (const char *oldpath,const char *newpath);
用法:#include <unistd.h>
参数:oldpath,原文件路径
newpath,文件的新路径
返回值:成功,返回0;失败,返回-1,同时errno置位。
6、mkdir
说明:创建一个目录。
原型:int mkdir (const char *path,mode_t mode);
用法:#include <sys/stat.h>
#include <sys/types.h>
参数:path,目录名
mode,给出了目录的权限,mode要服从umask的设置。
返回值:成功,返回0;失败,返回-1,如果发生错误,errno置位。
7、rmdir
说明:删除一个空目录。
原型:int rmdir (const char *path);
用法:#include <unistd.h>
参数:path,目录名。
返回值:成功,返回0;失败,返回-1,同时errno置位。
8、chdir
说明:改变当前的工作目录到path指定的路径。
原型:int chdir (const char *path);
用法:#include <unistd.h>
参数:path,指定当前工作目录的路径。
返回值:成功,返回0;失败,返回-1,同时errno置位。
9、getcwd
说明:获取当前工作目录的绝对路径。
原型:char * getcwd (char *buf,size_t size);
用法:#include <unistd.h>
参数:buf,存放当前工作目录的缓冲区。
size,buf的长度。
返回值:成功,返回指向buf的指针,如果目录名字长度超出了size,则返回NULL。
10、opendir
说明:打开一个目录流,这个流位于目录里的第一项。
原型:DIR * opendir (const char *name);
用法:#include <sys/types.h>
#include <dirent.h>
参数:name,目录名。
返回值:成功,返回目录流指针;失败,返回NULL,同时errno置位。
11、 readdir
说明:返回一个指针,指针指向的结构体里保存着目录流dirp中下一个目录项的有关信息。后续的readdir调用将返回后续的目录项。
原型:struct dirent * readdir (DIR *dirp);
用法:#include <sys/types.h>
#include <dirent.h>
参数:dirp,目录流指针。
返回值:成功,返回一个指向dirent struct的指针;发生错误,或达到文件结尾(EOF),返回NULL,发生错误时,errno置位。
12、telldir
说明:返回目录流里的当前位置。
原型:long int telldir (DIR *dirp);
用法:#include <sys/types.h>
#include <dirent.h>
参数:dirp,目录流指针。
返回值:成功,返回目录流中当前位置;失败,返回-1,同时errno置位。
13、seekdir
说明:设置目录流dirp的目录项指针位置,该位置是下一次readdir调用开始的地方。loc用来设置指针位置,它应该通过前一个telldir调用获得。
原型:void seekdir (DIR *dirp,long int loc);
用法:#include <sys/types.h>
#include <dirent.h>
参数:dirp,目录流指针。
loc,用来设置指针位置。
返回值:无。
14、closedir
说明:关闭目录流。
原型:int closedir (DIR *dirp);
用法:#include <sys/types.h>
#include <dirent.h>
参数:dirp,目录流指针。
返回值:成功,返回0;失败,返回-1,同时errno置位。