linux修改当前工作目前为指定参数路径

 对于Linux而言,应用程序的默认工作目录就不同了,它是默认是继承启动它的进程的工作目录的,也就是说,如果进程是在其它目录下启动,那应用程序的工作目录默认就在其它的目录下。这样的话使用相对路径访问文件就有很大的不确定性:我们永远也不能保证,用户一定是从应用程序所在的目录启动!

那要怎么解决呢,我给的建议是,在程序启动后,修改应用程序的当前目录到应用程序所在的目录,然后其它所有程序都无须改动。最好的办法当然只有一个,那就是通过main函数传入的argv[0]计算出当前目录:chdir(dirname(argv[0]));
1 chdir(const char *path); 修改当前进程的执行路径为path,头文件:#include <unistd.h>

2 dirname(path),头文件:#include <libgen.h>,dirname 的作用是截取一个文件的前面路径部分,
比如/user/local/test.cpp ,可以截取出/user/local 这个字符串路径。

猜你喜欢

转载自blog.csdn.net/qq_36184671/article/details/86672017