当前位置: 技术问答>linux和unix
用C语言怎么实现改变当前路径(请看下面代码)
来源: 互联网 发布时间:2015-09-28
本文导语: 为什么我用chdir改变路径后,程序执行后又返回到可执行程序所在的目录?请问用什么办法解决这个问题?执行程序后让它改变到指定的目录。 #include int main(int argc,char * argv[]) { int flag; char * pathname; flag=c...
为什么我用chdir改变路径后,程序执行后又返回到可执行程序所在的目录?请问用什么办法解决这个问题?执行程序后让它改变到指定的目录。
#include
int main(int argc,char * argv[])
{
int flag;
char * pathname;
flag=chdir(argv[1]);
pathname=getcwd(argv[1],100);
if(flag!=0)
printf("chdir fail!n");
else
printf("%sn",pathname);
return 0;
}
#include
int main(int argc,char * argv[])
{
int flag;
char * pathname;
flag=chdir(argv[1]);
pathname=getcwd(argv[1],100);
if(flag!=0)
printf("chdir fail!n");
else
printf("%sn",pathname);
return 0;
}
|
在经过 呕了三天心沥了两夜血 今天终于把这个问题解决了,不过这个程序还需要细节的完善。
等完成后我会在论坛上发布,请大家一起完善。
等完成后我会在论坛上发布,请大家一起完善。
|
你只能改变程序的工作目录,不能改变用户的工作目录。
程序运行时,目录改变,但程序返回时,就会返回用户的工作目录!
程序运行时,目录改变,但程序返回时,就会返回用户的工作目录!
|
在程序里执行shell命令
|
值会改变当前进程的!但是没有改变你shell的目录。你进程退出,恢复
|
这是环境变量造成的, 除非你能实现 在程序退出前改掉 创建此进程的进程的环境变量
好像不容易
好像不容易
|
倒 那个cd 也是内嵌命令
本身就是shell一部分
就象你在程序里改变路径可以成功一样
本身就是shell一部分
就象你在程序里改变路径可以成功一样
|
在bash下,用souce命令和shell脚本可以改变执行后的路径,c语言咋办,不知道
/home/a] $ cat ss.sh
cd /root
ls -l
/home/a] $
/home/a] $ source /home/a/ss.sh
............
/root ] $
/root ] $
在列出/root目录,回到shell后,路径为/root
/home/a] $ cat ss.sh
cd /root
ls -l
/home/a] $
/home/a] $ source /home/a/ss.sh
............
/root ] $
/root ] $
在列出/root目录,回到shell后,路径为/root
|
cd $yourdir