改变工作目录和根目录

进程有工作目录和根目录。

工作目录:进程在哪个路径下被运行起来哪个路径就是进程的工作目录(Current Woring Directory, CWD)

根目录:就是"/"

工作目录和根目录可以通过/proc/PID/cwd/proc/PID/root进行查看

工作目录和根目录都可以进行更改,获取进程当前工作目录和改变进程工作目录的函数分别是:

#include <unistd.h>char *getcwd(char *buf, size_t size);
int chdir(const char *path);

buf参数指向的内存用于存储进程当前工作目录的绝对路径名,其大小由size参数指定。

如果当前工作目录的绝对路径的长度(再加上一个空结束字符“\0”)超过了size,则getcwd将返回NULL,并设置errnoERANGE

如果bufNULL并且size非0,则getcwd可能在内部使用malloc动态分配内存,并将进程的当前工作目录存储在其中。如果是这种情况,则我们必须自己来释放getcwd在内部创建的这块内存。

getcwd函数成功时返回一个指向目标存储区(buf指向的缓存区或是getcwd在内部动态创建的缓存区)的指针,失败则返回NULL并设置errno

chdir函数的path参数指定要切换到的目标目录。它成功时返回0,失败时返回-1并设置errno

改变进程根目录可以使用chroot:

#include <unistd.h>int chroot(const char *path);

path参数指定要切换到的目标根目录。它成功时返回0,失败时返回-1并设置errno

chroot并不改变进程的当前工作目录。

改变进程的根目录之后,程序可能无法访问类似/dev的文件(和目录),因为这些文件(和目录〉并非处于新的根目录之下。不过好在调用chroot之后,进程原先打开的文件描述符依然生效,所以我们可以利用这些早先打开的文件描述符来访问调用chroot之后不能直接访问的文件(和目录),尤其是一些日志文件。此外,只有特权进程才能改变根目录。

改变工作目录和根目录相关推荐

  1. linux改变工作目录命令,使用linux cd命令来改变所在目录

    只要你知道所在位置,以及它与你想转换到的位置间的关系,改变所在目录使用linux cd命令是很容易的. 要改变所在目录,使用使用linux cd命令.只使用这个命令本身总是会把你返回到你的主目录:要转 ...

  2. 服务器Apache配置以及改变工作目录

    Apache安装成功 Apache的配置主要集中在httpd.conf文件,它位于你的安装目录,比如:我安装在 用编辑器打开httpd.conf文件,先来查找到如下这一行:#ServerName 我们 ...

  3. linux改变工作目录命令,linux命令:cd命令,改变当前的工作目录

    原标题 : 每天一个linux命令(2):cd命令 Linux cd 命令可以说是Linux中最基本的命令语句,其他的命令语句要进行操作,都是建立在使用 cd 命令上的. 所以,学习Linux 常用命 ...

  4. pythondocx更新目录_python根目录

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 目前支持的 python 开发语言包括如下版本:python 2.7python ...

  5. python查看工作目录_闲话python-36:文件系统操作

    我们编写的python程序既可能在Windows下运行,也有可能在Linux和Mac OS下运行,一般的操作对于跨平台而言问题都不大,而文件系统的相关操作在不同的平台上是具有较大差异的.我们当然可以使 ...

  6. php getcwd文件件,PHP目录函数 getcwd (取得当前工作目录)

    在PHP中,目录函数 getcwd() 用于取得当前工作目录. 函数语法:string getcwd ( ) getcwd() 函数用于取得当前工作目录,成功则返回当前工作目录,失败返回 false. ...

  7. Python os.chdir() 方法用于改变当前工作目录到指定的路径。

    Python os.chdir() 方法 正在上传-重新上传取消​ Python OS 文件/目录方法 概述 os.chdir() 方法用于改变当前工作目录到指定的路径. 语法 chdir()方法语法 ...

  8. linux --chdir() 改变当前工作目录函数

    linux --目录chdir函数 int chdir(const char *path ); 说明:chdir函数用于改变当前工作目录.调用参数是指向目录的指针,调用进程需要有搜索整个目录的权限.每 ...

  9. Python中的os.chdir()函数:改变当前工作目录

    Python中的os.chdir()函数:改变当前工作目录 Python的os模块提供了一系列处理操作系统相关功能的接口.在其中,os.chdir()函数被广泛应用于Python程序中,用于改变当前的 ...

最新文章

  1. ScrollView以及TextView和对应链接
  2. 02.Android之IPC机制问题
  3. 程序员修神之路--高并发下为什么更喜欢进程内缓存
  4. 获取两个数的最大值,判断是否相等;
  5. easyui 添加下拉框数据_功能更新:熟用仪表盘这个功能,你可以少建90%的数据报表...
  6. 为zsh和VIM配置一个状态提示栏
  7. Java中Properties类的学习总结
  8. 解决:能提交和更新,但SVN查看log时提示找不到路径'svn/XXXX'
  9. 跳一跳python源码下载_微信跳一跳辅助_微信跳一跳作弊外挂下载【脚本】-华军软件园...
  10. Rect类基本函数使用
  11. php paypal ipn,PHP 开发详解:PayPal Instant Payment Notification (IPN)
  12. App发送短信验证码实现
  13. 阿里云建站备案必要性
  14. 2019-6-2 第2套试卷中的生词(02)
  15. python去除含st的股票
  16. mencoder的配置文件
  17. 你的磁力链为什么下不动了?(干货)
  18. 浅谈企业网络安全边界
  19. 洛谷P3667 [USACO17OPEN]Bovine Genomics G 动态规划
  20. 保留应用和数据的重装win10

热门文章

  1. Java实现 判断字符是不是韵母
  2. 新建的Maven项目里面没有.iml文件怎么办
  3. Axure制作水波球
  4. 20230228英语学习
  5. 圣诞节音乐计算机铃儿响叮当,圣诞节歌曲铃儿响叮当歌词
  6. deepdive中文关系提取
  7. prime_series_level-1
  8. windows bat文件实现定时关机和定时重启
  9. ipad safari php readfile mp4,MP4 plays when accessed directly, but not when read through PHP, on iOS
  10. 全新MyZip for Mac(超快速解压/压缩工具)