栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C语言中获取和改变目录的相关函数总结

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C语言中获取和改变目录的相关函数总结

C语言getcwd()函数:取得当前的工作目录
头文件:

#include 

定义函数:

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 
main()
{
  char buf[80];
  getcwd(buf, sizeof(buf));
  printf("current working directory : %sn", buf);
}

执行:

current working directory :/tmp


C语言chdir()函数:改变当前的工作目录
头文件:

#include 

定义函数:

int chdir(const char * path);

函数说明:chdir()用来将当前的工作目录改变成以参数path 所指的目录.

返回值执:行成功则返回0, 失败返回-1, errno 为错误代码.

范例

#include 
main()
{
  chdir("/tmp");
  printf("current working directory: %sn", getcwd(NULL, NULL));
}

执行:

current working directory :/tmp


C语言chroot()函数:改变文件根目录
头文件:

 #include 

定义函数:

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 存取错误。

范例


#include 
main()
{
  chroot("/tmp");
  chdir("/");
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/64877.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号