我想编写一个判断目录是否存在的程序;如果该目录不存在,则它会在其中创建该目录和一个日志(log)文件,但如果该目录已经存在,则它只会在该文件夹中创建一个新的日志(log)文件.

在C和Linux中如何实现这一点?

推荐答案

查看stat以判断目录是否存在,

mkdir,创建一个目录.

#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>

struct stat st = {0};

if (stat("/some/directory", &st) == -1) {
    mkdir("/some/directory", 0700);
}

您可以通过man 2 statman 2 mkdir命令查看这些功能的手册.

C++相关问答推荐

-O and -wrap的行为

我的C语言中的回归函数如何工作?

char为16位且Short也为16位的c环境合法吗

为指针 struct 创建宏

gcc已编译的可执行文件TSB是否同时暗示最低有效字节和最低有效位?

ISO_C_BINDING,从Fortran调用C

以c格式打印时间戳

当打印字符串时,为什么在c中没有使用常量限定符时我会收到警告?

如何设置指针指向在函数中初始化的复合文字中的整数?

如何在C宏中确定 struct 中元素的类型?

调用mProtection将堆栈上的内存设置为只读,直接导致程序SIGSEGV

使用sscanf获取零个或多个长度的字符串

为什么指针运算会产生错误的结果?

将字符串数组传递给C中的函数:`str[dim1][str_size]`vs`*str[dim1]`

Fprintf正在写入多个 struct 成员,并且数据过剩

如何使这个While循环在新行上结束

错误:字符串在C中获得意外输出

基于蝶数恰好有8个除数的事实的代码

带有数组指针的 struct 在print_stack()函数中打印随机数

C程序printf在getchar while循环后不工作