w****a 发帖数: 155 | 1 我在写一个system call 的程序, 主要是用chdir实现改变当前目录,程序如下:
#include
#include
using namespace std;
int main()
{
char* path ="/home/ugrad1/arcbelly";
char* buf ;
buf = new char[256];
chdir(path);
getcwd(buf,256);
cout << buf << endl;
return 0;
}
执行完这个程序后,当前目录应该变到 /home/ugrad1/arcbelly
但是输出结果确是:
/home/ugrad1/arcbelly
The "temp" directory is my original one, so this means that this program
doesn't change the current directory. I think the "chdir" might not work.
请帮我看看是 |
h****u 发帖数: 277 | 2 work呀,有什么不对么?
【在 w****a 的大作中提到】 : 我在写一个system call 的程序, 主要是用chdir实现改变当前目录,程序如下: : #include : #include : using namespace std; : int main() : { : char* path ="/home/ugrad1/arcbelly"; : char* buf ; : buf = new char[256]; : chdir(path);
|
b****k 发帖数: 10 | 3 your chdir is only effective in its own process, it cannot change the cwd of
its parent process, which is the shell.
【在 w****a 的大作中提到】 : 我在写一个system call 的程序, 主要是用chdir实现改变当前目录,程序如下: : #include : #include : using namespace std; : int main() : { : char* path ="/home/ugrad1/arcbelly"; : char* buf ; : buf = new char[256]; : chdir(path);
|
w****a 发帖数: 155 | 4 谢谢你的回贴,能不能再详细一些,我正在学习system programming.
你的意思是说,我的程序其实只是改的child process 的目录,而最后显示的是主进程
的目录,但它并没有受到CHDIR 的影响, 是吗。
那请问我应该如何做呢。
【在 b****k 的大作中提到】 : your chdir is only effective in its own process, it cannot change the cwd of : its parent process, which is the shell.
|
w****a 发帖数: 155 | 5 I have another question, looks like in my original problem, I didn't build
another child process using fork(), why chdir didn't work though?
【在 b****k 的大作中提到】 : your chdir is only effective in its own process, it cannot change the cwd of : its parent process, which is the shell.
|
h****u 发帖数: 277 | 6 你的shell是一个程序吧,你写的程序再shell上运行,所以是shell的子程序。所以你的
程序的当前路径变了,不能影响它的父进程。
九江子
of
work.
【在 w****a 的大作中提到】 : I have another question, looks like in my original problem, I didn't build : another child process using fork(), why chdir didn't work though?
|
w****a 发帖数: 155 | 7 Thanks for your help. But is there any method that can change the "dir" of
other process?
的
cwd
:
program
【在 h****u 的大作中提到】 : 你的shell是一个程序吧,你写的程序再shell上运行,所以是shell的子程序。所以你的 : 程序的当前路径变了,不能影响它的父进程。 : 九江子 : : of : work.
|