setivolkylany@localhost$/ lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description: Debian GNU/Linux 8.6 (jessie)
Release: 8.6
Codename: jessie
setivolkylany@localhost$/ uname -a
Linux localhost 3.16.0-4-amd64 #1 SMP Debian 3.16.36-1+deb8u2 (2016-10-19) x86_64 GNU/Linux
setivolkylany@localhost$/ g++ --version
g++ (Debian 4.9.2-10) 4.9.2
Copyright (C) 2014 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
5条答案
按热度按时间xfb7svmp1#
请使用realpath()。
realpath()
函数应该从file_name
指向的路径名派生一个命名同一文件的绝对路径名,其解析不涉及'.
'、'..
'或符号链接。生成的路径名应该以null结尾的字符串形式存储在resolved_name
指向的缓冲区中,最多可达{PATH_MAX}
个字节。如果
resolved_name
是空指针,则realpath()
的行为由实现定义。以下示例为symlinkpath参数标识的文件生成绝对路径名。生成的路径名存储在actualpath数组中。
字符串
waxmsbnn2#
在
stdlib.h
中尝试realpath()
字符串
acruukt93#
还有一个小的路径库cwalk,它可以跨平台工作。它有cwk_path_get_absolute来做到这一点:
字符串
产出:
型
c6ubokkw4#
也可以试试“getcwd”
字符串
测试结果:
型
测试环境:
型
mklgxw1f5#
如果
realpath()
不存在(这是在windows的情况下),则使用_fullpath()
。