gpt4 book ai didi

c++ - realpath() 的安全替代方法是什么?

转载 作者:IT老高 更新时间:2023-10-28 22:17:41 63 4
gpt4 key购买 nike

我正在开发一个程序,它使用 realpath() 来获取文件的绝对路径。不幸的是,这个函数需要一个字符串缓冲区,这个缓冲区应该很大,以至于它足够大,当这个应用程序必须跨多个平台运行时,这是不安全的。是否有此函数的安全版本可以避免缓冲区溢出问题,可能使用动态内存分配?

最佳答案

请参阅此处了解安全和可移植地使用 realpath 的信息:

http://www.opengroup.org/onlinepubs/9699919799/functions/realpath.html

基本上,现代标准允许您传递 NULL 指针,并且 realpath 将分配适当长度的缓冲区。如果您想移植到不支持此标准的遗留系统,只需检查 #ifdef PATH_MAX 并使用长度为 PATH_MAX 的固定大小缓冲区。据我所知,没有缺少常量 PATH_MAX 但不支持 realpath 的 NULL 参数的遗留系统。

关于c++ - realpath() 的安全替代方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4109638/

63 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com