文件的移动和删除
(1)文件的移动
#include
int rename(const char *oldpath,const char *newpath);
rename将参数oldpath所指定的文件名称修改成参数newpath锁制定的文件名称。若newpath已经存在,则源文件被删除
刚刚我把之前那个umask.c文件名字修改为mmask.c则umask.c进去之后为空,mmask.c为刚刚那个程序
(2)文件的删除
#include
int unlink(const char *pathname);
int remove(const char *pathname);//remove实际上是封装了unlink函数
unlink系统调用从文件系统删除一个文件,若文件连接数为0且没有进程打开这个文件,则文件被删除且释放所占用的磁盘空间,但是如果文件连接数虽然为0,但是有进程打开,则文件暂时不删除,知道所有打开该文件的进程都结束文件才被删除。
目录操作
1:创建
#include
#include
int mkdir(const char *pathname,mode_t mode);
mkdir创建一个新空目录,空目录会自动创建.和..目录项。所创建的目录的存取许可权由mode(mode&~umask)指定,新创建目录的uid与创建目录进程的uid一致,如果父目录设置了st_gid位,则新创建的目录也设置st_gid位
2:删除
#include
int rmdir(const char *pathname);//rmdir只能删除由参数pathname指定的空目录。
3:获取当前目录
#include
char *getcwd(char *buf,size_t size);
char *get_current_dir_name(void);
char *getwd(char *buf);
getcwd会将当前的工作目录绝对路径复制到参数buf所致的内存空间。size为buf的空间大小
4:设置工作目录
#include
int chdir(const char *path);
int fchdir(int fd);
chdir用来将当前工作目录改为由参数path指定的目录,fchdir用来将当前工作目录改为由参数fd指定的目录。
5:获取目录信息
(1)opendir
#include
#include
DIR *opendir(const char *name);
opendir用来打开参数name指定的目录,并且返回DIR *形态的目录流,类似于文件操作中的文件描述符,接下来对目录的读取和搜索都使用该返回值
(2)readdir
#include
#include
struct dirent *readdir(DIR *name);
readdir用来从参数dir锁指向的目录中读取出目录项信息,返回一个struct dirent结构的指针
struct dirent
{
long d_ino;
off_t d_off;
unsigned short d_reclen;
char d_name[NAME_MAX+1];
}
(3)closedir
#include
#include
int closedir(DIR *dir);
closedir用来关闭参数dir指向的目录
阅读(1379) | 评论(0) | 转发(0) |