当前位置: 技术问答>linux和unix
如何取得程序的当前目录?getcwd()不行。请高手指点
来源: 互联网 发布时间:2015-07-19
本文导语: getcwd()的解释就是Get current working directory。偶本以为就像windows的GetCurrentDirectory()一样,取的是程序的当前路径。但试过后,才知道是用户的当前路径。 举例: [root@trumpboard root]# ./home/guolh/TbPdServer getcwd()输...
getcwd()的解释就是Get current working directory。偶本以为就像windows的GetCurrentDirectory()一样,取的是程序的当前路径。但试过后,才知道是用户的当前路径。
举例:
[root@trumpboard root]# ./home/guolh/TbPdServer
getcwd()输出的是/root
[root@trumpboard guolh]# ./TbPdServer // 当前路径是/home/guolh
getcwd()输出的是/home/guolh
请指教:不在/home/guolh下,如何取得TbPdServer的所在目录的路径?
不要告诉偶传/home/guolh作为参数进入TbPdServer中。谢谢!
举例:
[root@trumpboard root]# ./home/guolh/TbPdServer
getcwd()输出的是/root
[root@trumpboard guolh]# ./TbPdServer // 当前路径是/home/guolh
getcwd()输出的是/home/guolh
请指教:不在/home/guolh下,如何取得TbPdServer的所在目录的路径?
不要告诉偶传/home/guolh作为参数进入TbPdServer中。谢谢!
|
// The implement method is shown as below:
#include
#include
int main(int argc, char* argv[])
{
printf("dir: %sn", dirname(argv[0]));
return 0;
}
#include
#include
int main(int argc, char* argv[])
{
printf("dir: %sn", dirname(argv[0]));
return 0;
}
|
这个需要root权限,访问/proc文件系统。
linux下,cat /proc/进程号/exe 就可以得到程序本身所在的目录。
linux下,cat /proc/进程号/exe 就可以得到程序本身所在的目录。