gpt4 book ai didi

c - 处理路径长度的问题

转载 作者:行者123 更新时间:2023-12-04 02:20:50 26 4
gpt4 key购买 nike

我正在创建将用于在 Linux 和 Windows 上进行文件操作的库。所以我需要处理路径,主要要求是我的函数将接收 UTF8 格式的字符串。但这会导致一些问题,其中之一是我在 Windows 上使用 MAX_PATH 并在 linux 上使用 PATH_MAX 来表示静态路径变量。对于 ASCII 字符,不会有问题,但是当路径包含 unicode 字符时,如果 unicode char 需要每个字符 2 个字节,则路径长度将缩短两倍,如果 unicode char 需要每个字符 3 个字节,则路径长度将缩短 3 倍,依此类推.那么这个问题有好的解决方案吗?

提前致谢!

附注对不起我的英语。

最佳答案

至少在 Linux 上,您的担心似乎是错误的。 Linux(和一般的 POSIX)将路径视为以“\0”结尾的不透明字节 block 。它不关心这些字节如何转换为字符。也就是说,PATH_MAX 以字节为单位指定路径名的最大长度,而不是以字符为单位。

因此,如果路径名包含 >= 0 个多字节 UTF-8 字符,则它仅意味着字符的最大路径长度为 <= PATH_MAX。

关于c - 处理路径长度的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7106911/

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