hunting/customization/README.md
2024-06-15 08:42:18 +08:00

66 lines
1.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 1. 客制化目录
## 1.1. 概述
   客制化目录,依赖整个项目源码(含各层目录),继承并重载接口实现客制化功能,用于管理定制化版本 / Debug版本 / 生产版本等,使特殊功能代码与公版代码解耦合,保持公版版本功能稳定性和一致性。
## 1.2. Debug版本
### 1.2.1. Debug版本概述
   Debug版本用于满足测试需求例如开启log / 特殊的功能。
### 1.2.2. 生产测试版本
   生产时使用的验证产品功能的版本。
### 1.2.3. 其它定制版本
   基于公版,继承派生出来的特殊功能的商业化版本。
```
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int is_mounted(const char *dirpath) {
FILE *fp;
char line[1024];
char mount_point[1024];
// 尝试打开 /proc/mounts 文件
fp = fopen("/proc/mounts", "r");
if (fp == NULL) {
perror("Error opening /proc/mounts");
return -1;
}
// 逐行读取并查找挂载点
while (fgets(line, sizeof(line), fp) != NULL) {
if (sscanf(line, "%*s %1023s %*s %*s %*d %*d\n", mount_point) == 1) {
// 检查当前行中的挂载点是否与所查找的目录匹配
if (strcmp(dirpath, mount_point) == 0) {
fclose(fp);
return 1; // 已挂载
}
}
}
fclose(fp);
return 0; // 未挂载
}
int main(int argc, char *argv[]) {
if (argc != 2) {
fprintf(stderr, "Usage: %s <directory>\n", argv[0]);
return 1;
}
const char *dirpath = argv[1];
if (is_mounted(dirpath)) {
printf("Directory '%s' is mounted.\n", dirpath);
} else {
printf("Directory '%s' is not mounted.\n", dirpath);
}
return 0;
}
```