C语言chroot()函数:改变文件根目录
相关函数:chdir
头文件:#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("/");
}
头文件:#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("/");
}