Linux系统调用之文件和目录的维护

一、系统调用列表

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置位。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值