c – 为什么mkdir无法使用波浪号(〜)?

当我写
mkdir("~/folder1",0777);

在linux中,无法创建目录.如果我用扩展的主目录替换〜,它可以正常工作.使用〜有什么问题?

谢谢

解决方法

〜只知道shell而不是mkdir系统调用.

但如果你尝试:

system("mkdir ~/foo");

这作为“mkdir〜/ foo”被传递到shell和shell扩展〜$HOME

如果要使用mkdir的$HOME,可以使用getenv功能

char path[MAX];
char *home = getenv ("HOME");
if (home != NULL) {
        snprintf(path,sizeof(path),"%s/new_dir",home);
        // Now use path in mkdir
        mkdir(path,PERM);
}

相关文章

本程序的编译和运行环境如下(如果有运行方面的问题欢迎在评...
水了一学期的院选修,万万没想到期末考试还有比较硬核的编程...
补充一下,先前文章末尾给出的下载链接的完整代码含有部分C&...
思路如标题所说采用模N取余法,难点是这个除法过程如何实现。...
本篇博客有更新!!!更新后效果图如下: 文章末尾的完整代码...
刚开始学习模块化程序设计时,估计大家都被形参和实参搞迷糊...