C语言中获取和改变目录的相关函数总结
C语言getcwd()函数:取得当前的工作目录
头文件:
#include <unistd.h>
定义函数:
char * getcwd(char * buf, size_t size);
函数说明:getcwd()会将当前的工作目录绝对路径复制到参数buf 所指的内存空间,参数size 为buf 的空间大小。
注:
1、在调用此函数时,buf 所指的内存空间要足够大。若工作目录绝对路径的字符串长度超过参数size 大小,则返回NULL,errno 的值则为ERANGE。
2、倘若参数buf 为NULL,getcwd()会依参数size 的大小自动配置内存(使用malloc()),如果参数size 也为0,则getcwd()会依工作目录绝对路径的字符串程度来决定所配置的内存大小,进程可以在使用完次字符串后利用free()来释放此空间。
返回值:执行成功则将结果复制到参数buf 所指的内存空间, 或是返回自动配置的字符串指针. 失败返回NULL,错误代码存于errno.
范例
#include <unistd.h>main() { char buf[80]; getcwd(buf, sizeof(buf)); printf("current working directory : %s\n", buf); }
执行:
current working directory :/tmp
C语言chdir()函数:改变当前的工作目录
头文件:
#include <unistd.h>
定义函数:
int chdir(const char * path);
函数说明:chdir()用来将当前的工作目录改变成以参数path 所指的目录.
返回值执:行成功则返回0, 失败返回-1, errno 为错误代码.
范例
#include <unistd.h>main() { chdir("/tmp"); printf("current working directory: %s\n", getcwd(NULL, NULL)); }
执行:
current working directory :/tmp
C语言chroot()函数:改变文件根目录
头文件:
#include <unistd.h>
定义函数:
int chroot(const char * path);
函数说明:chroot()用来改变根目录为参数path 所指定的目录。只有超级用户才允许改变根目录,子进程将继承新的根目录。
返回值:调用成功则返回0, 失败则返-1, 错误代码存于errno.
错误代码:
1、EPERM 权限不足, 无法改变根目录。
2、EFAULT 参数path 指针超出可存取内存空间。
3、ENAMETOOLONG 参数path 太长。
4、ENOTDIR 路径中的目录存在但却非真正的目录。
5、EACCESS 存取目录时被拒绝。
6、ENOMEM 核心内存不足。
7、ELOOP 参数path 有过多符号连接问题。
8、EIO I/O 存取错误。
范例
/* 将根目录改为/tmp, 并将工作目录切换至/tmp */#include <unistd.h>main() { chroot("/tmp"); chdir("/"); }
您可能感兴趣的文章:
- 文件、目录,文本文件等多种操作类
- 可折叠展开的简单目录实现代码
- 路由器安全有关的目录
- PowerShell移动目录中指定文件的方法(非全部文件)
- Lua和C语言的交互详解
- C#常用目录文件操作类实例
- C#使用Directoryinfo类获得目录信息和属性的方法
- c#操作iis根目录的方法
- C#获取目录最后访问时间的方法
- C#实现最完整的文件和目录操作类实例
- 关于C语言中参数的传值问题
- 简要对比C语言中三个用于退出进程的函数
- 深入C++中API的问题详解
- 基于C语言string函数的详解
- C语言内存对齐实例详解
- 使用C语言判断英文字符大小写的方法
- c语言实现的带通配符匹配算法
- C语言实现顺序表基本操作汇总
- C语言中计算正弦的相关函数总结
- 使用C语言详解霍夫曼树数据结构