当前位置: 技术问答>linux和unix
什么是进程的工作目录啊,谢谢大牛们解释
来源: 互联网 发布时间:2016-09-24
本文导语: 麻烦大家解释下: 什么是进程的工作目录?什么是当前工作目录?什么是当前执行目录?小弟一直对这些目录含糊不清啊 | 有这么几个概念: 1. 可执行文件在硬盘上存放的目录,比如ls保存...
麻烦大家解释下:
什么是进程的工作目录?什么是当前工作目录?什么是当前执行目录?小弟一直对这些目录含糊不清啊
什么是进程的工作目录?什么是当前工作目录?什么是当前执行目录?小弟一直对这些目录含糊不清啊
|
有这么几个概念:
1. 可执行文件在硬盘上存放的目录,比如ls保存在/bin
2. 从哪个目录执行,比如cd /home/abc然后/bin/ls,
3. 进程中通过chdir切换到其他目录。
这几个和楼主提到的那几个怎么对应,我也不太有把握。
man cd 说的是 "Change the current directory"
man chdir 说的是 "changes the current working directory of the calling process to ..."
getcwd - get current working directory
一个重要的概念是,如果用相对路径访问一个文件,比如fopen("a.txt", "r"),是要在"current working directory"这里面来找这个文件的。
1. 可执行文件在硬盘上存放的目录,比如ls保存在/bin
2. 从哪个目录执行,比如cd /home/abc然后/bin/ls,
3. 进程中通过chdir切换到其他目录。
这几个和楼主提到的那几个怎么对应,我也不太有把握。
man cd 说的是 "Change the current directory"
man chdir 说的是 "changes the current working directory of the calling process to ..."
getcwd - get current working directory
一个重要的概念是,如果用相对路径访问一个文件,比如fopen("a.txt", "r"),是要在"current working directory"这里面来找这个文件的。
|
假定在/bin下面有个可执行文件xxx,
我在shell里cd /home/abc,然后/bin/xxx来调用他,那么当前工作目录就是/home/abc
这时候fopen("a.txt", "r"),就是在/home/abc来找这个a.txt文件。
如果在执行过程中调用chdir("/home/abc/def")成功切换了目录,那么当前工作目录就变成了/home/abc/def
这时候fopen("a.txt", "r"),就是在/home/abc/def来找这个a.txt文件。
我在shell里cd /home/abc,然后/bin/xxx来调用他,那么当前工作目录就是/home/abc
这时候fopen("a.txt", "r"),就是在/home/abc来找这个a.txt文件。
如果在执行过程中调用chdir("/home/abc/def")成功切换了目录,那么当前工作目录就变成了/home/abc/def
这时候fopen("a.txt", "r"),就是在/home/abc/def来找这个a.txt文件。