Ste*_*eng 9 c c++ linux shell mkdir
当我写作
mkdir("~/folder1" , 0777);
Run Code Online (Sandbox Code Playgroud)
在linux中,它无法创建目录.如果我用~扩展的主目录替换它,它工作正常.使用有什么问题~?
谢谢
cod*_*ict 27
~只知道shell而不是mkdir系统调用.
但如果你尝试:
system("mkdir ~/foo");
Run Code Online (Sandbox Code Playgroud)
这有效,因为"mkdir ~/foo"它传递给shell,shell扩展~为$HOME
如果要使用$HOMEwith mkdir,可以使用以下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);
}
Run Code Online (Sandbox Code Playgroud)