我是一个编码菜鸟。我必须在 HPC 服务器中为我的项目编译一些代码。我可以在笔记本电脑中编译代码,但是当我在 HPC 上运行它时,我收到错误消息
"too few arguments to function mkdir".
我尝试在 cwd 中而不是在输出目录中打印输出,但它仍然没有解决问题。如果我使用声明为注释的 check 命令(我的一位讲师建议),我会在函数中首次使用时收到未声明的错误检查。
void write_collection_pvd(int time_total, int time_save, char *directory, char *filename)
{
int x;
char dataFileName[255];
FILE *dataFile;
//#ifdef WIN32
mkdir(directory);
//#else
// check = mkdir(directory,0777);
//#endif
sprintf(dataFileName, "%s/%s.pvd", directory, filename);
}
我希望 pvd 文件写入输出目录中。预先感谢在此处输入代码
最佳答案
在 C 语言中,mkdir
函数接受两个参数:要创建的目录的名称以及授予该目录的权限模式(通常为八进制)。所以不要打电话
mkdir(directory);
你应该这样称呼
mkdir(directory, 0777);
这将为新目录授予所有者、组和其他人读取、写入和搜索(执行)的权限。但是(至少在 Unix 和 Linux 下)这些权限将根据进程的默认权限向下调整,这通常会按世界和组关闭可写性。
关于c - 如何修复 "too few arguments to function mkdir",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57127759/