linux c 判断目录是否存在,如不存在新建该目录
时间: 2024-02-27 15:55:32 浏览: 68
在 Linux C 中,判断目录是否存在,如不存在则新建该目录可以使用 mkdir 函数。具体实现如下:
```
#include <sys/stat.h>
#include <sys/types.h>
int mkdir(const char *pathname, mode_t mode);
```
其中,pathname 是待创建的目录路径,mode 是创建目录时指定的权限。如果目录创建成功,则返回 0,否则返回 -1。例如,以下代码可以实现判断目录是否存在,如不存在则新建该目录:
```
#include <sys/stat.h>
#include <sys/types.h>
#include <unistd.h>
#include <stdio.h>
int main() {
if (access("/path/to/dir", F_OK) != -1) {
printf("目录已存在\n");
} else {
if (mkdir("/path/to/dir", 0777) == 0) {
printf("目录创建成功\n");
} else {
printf("目录创建失败\n");
}
}
return 0;
}
```
其中,0777 表示创建目录时指定的权限,其中每一位代表 rwx 三种权限。如果想指定其他权限,可以根据需要进行修改。
相关问题
linux c 判断目录是否存在
在 Linux C 中,判断目录是否存在可以使用 access 函数。具体实现如下:
```
#include <unistd.h>
int access(const char *pathname, int mode);
```
其中,pathname 是待检查的目录路径,mode 是要检查的权限模式。如果目录存在且具备指定的访问权限,则返回 0,否则返回 -1。例如,以下代码可以判断指定目录是否存在:
```
#include <unistd.h>
#include <stdio.h>
int main() {
if (access("/path/to/dir", F_OK) != -1) {
printf("目录存在\n");
} else {
printf("目录不存在\n");
}
return 0;
}
```
其中,F_OK 是一个标志,表示检查是否存在。如果想检查目录是否具备读写执行权限,可以使用如下代码:
```
if (access("/path/to/dir", R_OK | W_OK | X_OK) != -1) {
printf("目录存在且具备读写执行权限\n");
} else {
printf("目录不存在或不具备读写执行权限\n");
}
```
linux 判断目录是否存在
在Linux中,可以使用以下命令来判断目录是否存在:
1. 使用ls命令查看目录是否存在:
$ ls /path/to/directory
如果目录存在,则会显示目录中的文件和子目录列表,否则会显示“没有这样的文件或目录”的错误消息。
2. 使用test命令判断目录是否存在:
$ test -d /path/to/directory && echo "目录存在" || echo "目录不存在"
如果目录存在,则会输出“目录存在”,否则会输出“目录不存在”。
3. 使用if语句判断目录是否存在:
if [ -d /path/to/directory ]; then
echo "目录存在"
else
echo "目录不存在"
fi
这种方法使用if语句来判断目录是否存在,如果目录存在,则执行if语句中的第一个命令,否则执行第二个命令。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)