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

前端之家收集整理的这篇文章主要介绍了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&C++相关文章