linux如何link文件夹位置,如何在linux下使用realpath()以编程方式获取文件的绝对路径?...

我知道有可能通过realpath()函数获取文件的绝对路径。但是,根据bugs部分的manpage,它的实现有一些问题。详细情况如下:如何在linux下使用realpath()以编程方式获取文件的绝对路径?

BUGS使用此功能

避免。它由于设计而中断(除非使用非标准resolved_pa​​th == NULL功能),因此无法为输出缓冲区resolve_path确定合适的大小。根据POSIX,一个PATH_MAX大小的缓冲区就足够了,但是PATH_MAX不需要是一个定义的常量,并且可能必须使用pathconf(3)来获得。并且询问pathconf(3)并没有真正的帮助,因为一方面POSIX警告pathconf(3)的结果可能很大并且不适合mallocing内存。另一方面,pathconf(3)可能返回-1来表示PATH_MAX没有界限。

libc4和libc5实现包含缓冲区溢出(在libc-5.4.13中修复)。因此,像mount(8)这样的set-user-ID程序需要一个私有版本。

所以,问题是什么是获得文件的绝对路径的最佳做法?

2009-07-23

jcadam

+0

复制“[编程式检索OS X命令行应用程序的绝对路径](http://stackoverflow.com/questions/799679/programatically-retrieving-the-absolute-path-of-an-os-的x命令行应用内)“? –

2009-07-23 19:45:38

+0

不,他们不是一回事。我想知道如何获得普通文件的绝对路径,而不是可执行文件的路径。 –

2009-07-24 15:12:26

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值