检查 sd卡是否挂载到对应目录,成功返回1,失败返回-1
检查 sd卡是否挂载到对应目录成功返回1失败返回-1typedef enum { SDCARD_INITING -4, // Initialization in progress SDCARD_FORMATTING -3, // Formatting in progress SDCARD_READ_ONLY -2, // Mounted as read-only SDCARD_ERROR -1, // General error state SDCARD_NOT_INSERTED 0, // SD card not inserted SDCARD_READY 1, // SD card ready and usable SDCARD_FORMATTED 2 } sdcard_format_event; sdcard_format_event sdcard_formate_status_log(int set, sdcard_format_event status) { static sdcard_format_event now_status SDCARD_NOT_INSERTED; if(set 1) { now_status status; } return now_status; } int uvr_sdcard_get_status() { FILE *fp; char line[256]; fp fopen(/proc/mounts, r); if (fp NULL) { perror([SD] fopen /proc/mounts); g_sdcard_status -1; printf([SD] branch: fopen fail\n); return -1; } while (fgets(line, sizeof(line), fp)) { if (strstr(line, /mnt/sdcard )) { fclose(fp); if (access(/dev/mmcblk0p1, F_OK) ! 0) { // printf([SD] branch: no /dev/mmcblk0p1\n); g_sdcard_status 0; return 0; } if (access(/mnt/sdcard/.uvr_sd_test, F_OK) ! 0) { // printf([SD] branch: no .uvr_sd_test file\n); g_sdcard_status -1; return -1; } g_sdcard_status 1; return 1; } } fclose(fp); int ret sdcard_formate_status_log(0, 0); // printf([SD] sdcard_formate_status_log ret %d\n, ret); if(ret SDCARD_ERROR) { g_sdcard_status -1; return -1; } else if(ret SDCARD_READY) { g_sdcard_status 1; return 1; } else if(ret SDCARD_NOT_INSERTED) { g_sdcard_status 0; return 0; } g_sdcard_status -1; return -1; }