rename(),unlink(),getcwd(),chdir(),opendir(),readdir(),closedir()函数

1.rename(),unlink(),remove()函数

  • #include <stdio.h>

原型:int rename(const char *oldpath,const  char *newpath); rename会将参数oldpath所指定的文件名改为参数newpath所指定的文件名,若newpath存在,则原文件会被删除;函数执行成功返回0,错误返回-1;

  • #include <unistd.h>

int unlink(const char *pathname); int remove(const char  *pathname); 函数参数解析:unlink系统调用从文件系统里删除一个文件,如果文件的链接数为0,但是有进程打开了这个文件,文件暂时不删除,直到所有打开这个文件的进程结束文件才被删除.参数pathname 若指向一个符号链接,则该链接被删除,若指向的是一个socket(套接字文件),FIFO(命名管道)或设备文件,该文件的名字被删除,但已经打开的这些文件仍能使用这些文件;函数执行成功返回0 错误-1;

2.getcwd()函数,chdir 函数()

  1. include <unistd.h>

原型:int *getcwd(char *buf,size_t  size); int  *get_current_dir_name(void); int  *getwd(char *buf);

  • getcwd()会将当前的工作目录的绝对路径复制到参数 buf所指的内存空间,参数size为buf的空间大小,在调用此函数前,buf所指的内存空间要足够大,若工作目录的绝对路径的字符串超过参数size,则返回NULL.
  •  如果buf 参数为NULL,getcwd()会根据参数size字符串的长度来决定配置内存的大小,执行成功将结果复制到参数buf所指的内存空间,失败返回NULL;
  • 如果定义了_GNU_SOURCE,则可以使用函数get_current_dir_name获取当前的工作目录,该函数用malloc分配空间来保存工作目录的绝对路径;
  • 如果定义了_BSD_SOURCE或_XOPEN_SOURCE_EXTENDED,也可以使用getwd获取当前工作目录,该函数不使用malloc分配任何空间,参数buf之指向的空间大小至少为PATH_MAX,getwd仅返回工作目录绝对路径的前PATH_MAX个字符;

2.include <unistd.h> 原型:int chdir(const char *path); int fchdir(int fd); 函数参数解析:chdir用来将当前的工作目录改为由参数path指定的目录,fchdir用来将当前工作目录改为由参数fd(文件描述符) 指定的目录.函数执行成功返回0,错误返回-1;

3.opendir(),readdir(),closedir()函数

1.#include <sys/types.h> #include <dirent.h> 原型:DIR *opendir(const char *name); opendir  用来打开参数name指定的目录,并返回DIR*形态的目录流,接下来对目录的读取和搜索都要使用此返回值,成功返回DIR*形态流,失败返回NULL; 2.#include <sys//types.h> #incldue <durent.h> 原型:struct dirent  *readdir(DIR *dir); readdir从参数dir形态目录流读取目录项信息,返回一个struct dirent结构的指针; struct dirent 的定义如下: struct dirent { long  d_ino;               //i节点 off_t  d_off;             //指目录文件开头至此目录进入点的位移 unsigned short   d_reclen;        //目录的长度 char   d_name   [NAME_MAX+1]             //文件名及其绝对路径 } 3.#include <sys/types.h> #include <dirent.h> int closedir(DIR *dir); 函数参数解析:用来关闭参数dir指向的目录,成功返回0,错误返回-1;

你可能感兴趣的:(rename(),unlink(),getcwd(),chdir(),opendir(),readdir(),closedir()函数)