我正在使用 chdir()
C 函数来允许用户更改目录。
然而,该函数无法识别“~”。我是否需要进行任何显式转换,以便 chdir
无法识别 ~ 的含义?因为我的不行还是我做错了什么?
最佳答案
Tilde 扩展由 shell 处理,而不是由系统调用处理。您可以使用 getenv()
读取环境变量 HOME
,然后将其用作 chdir()
的参数。
有一些系统调用可以获取此信息,这在单个系统上可能更可靠,但它们并不是完全可移植的。例如,查看 getpwuid().
关于chdir() 到主目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9493234/