c - 如何修复 "too few arguments to function mkdir"

标签 c

我是一个编码菜鸟。我必须在 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/

相关文章:

C - 对文本文件中的单词列表进行排序

c - 输入带有不可打印字符的字符串

c - 编写 C 程序将进程移至后台

C - 递归打印目录和文件

c - 自由函数在c中不自由

c - 读取字符串字符时出错 - Visual Studio 2017

c - 分别使用nodejs和c做AES-128-cbc加密时,使用相同的key和IV但结果不同

c - C语言中使用scanf或fgets时出现段错误

c - C 中的指针 : changes inside a function

C 编程创建动态数组