chdir() 到主目录

标签 c unix chdir

我正在使用 chdir() C 函数来允许用户更改目录。

然而,该函数无法识别“~”。我是否需要进行任何显式转换,以便 chdir 无法识别 ~ 的含义?因为我的不行还是我做错了什么?

最佳答案

Tilde 扩展由 shell 处理,而不是由系统调用处理。您可以使用 getenv() 读取环境变量 HOME,然后将其用作 chdir() 的参数。

有一些系统调用可以获取此信息,这在单个系统上可能更可靠,但它们并不是完全可移植的。例如,查看 getpwuid().

关于chdir() 到主目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9493234/

相关文章:

c - 如何检查 C 中的指针是否空闲?

c - 从 unix 命令行运行时 getopt 无法正常工作

shell - 如何在不实际解压缩的情况下查看 gzip 文件 “abc.gz” 的内容?

c - 使用 chdir 更改 c 中的工作目录

c++ - chdir() 返回 0,但在 chdir() 调用后的下一行中调试显示目录​​没有改变

perl - cd 和函数 chdir 之间的区别

c - 在 C 中获取调试错误

在 R 包 MASS 中找不到 vmmin() 的定义

c - opencl在内核中迭代数组

linux - rsync 不同步 .htaccess 文件