zoukankan      html  css  js  c++  java
  • 修改字符串中特定的内容,用于OpenRecovery Script

    下面的是实例内容

    目标是把OpenRecovery Script输入的内容进行修改

    当有下面的输入:(作用是安装/emmc目录下面的update-signed.zip 刷机包)

    install /emmc/update-signed.zip

    但是twrp 中只定义了/sdcard作为内存卡,面没有定义/emmc所以就要进行目标的更换了。

    用到的代码如下所示

     1 /*
     2  * 修改给定的字符串中相应的内容
     3  * 例如 '/usr/bin' -> '/home/bin'
     4  */
     5 #include <stdio.h>
     6 #include <stdlib.h>
     7 #include <string.h>
     8 #include <unistd.h>
     9 #include <sys/stat.h>
    10 #include <dirent.h>
    11 
    12 /*方法如下:
    13  * 先得到字符串的长度,用strlen
    14  * 再对字符串的内容进行比较,当找到相应的内容后,就进行替换
    15  */
    16 int main(int argc, char *argv[]) {
    17     char str[255] = "/emmc/backup/update-signed.zip";
    18     char str_a[255] = "/sd-ext/backup/update-signed.zip";
    19     char change_file_name[255];
    20 
    21     char tmp[255];
    22     int str_size = 0;
    23     int index = 0;
    24     int i = 0;
    25     str_size = strlen(str);
    26     if (0 == strncmp(str,"/emmc",5) && str_size > 5) {
    27         memset(tmp, '', 255); //对tmp[255] 进行清零
    28          for (index = 5, i = 0; str[index] != ''; index++, i++) {
    29              tmp[i] = str[index];
    30          }
    31          printf(" '/emmc/backup/update-signed.zip' -> %s
    ",tmp);
    32          snprintf(change_file_name,255,"%s", "/sdcard");
    33          strcat(change_file_name, tmp);
    34          printf("filename is  : -> %s 
    ", change_file_name);
    35     }
    36 
    37     if (0 == strncmp(str_a, "/sd-ext", 7) && strlen(str_a) > 7) {
    38         memset(tmp, '', 255); 
    39         for (index = 7, i = 0; str_a[index] != ''; index++, i++) {
    40             tmp[i] = str_a[index];
    41         }
    42         printf(" '/sd-ext/backup/update-signed.zip' -> %s 
    ", tmp);
    43         snprintf(change_file_name, 255, "%s", "/internal_sd");
    44         strcat(change_file_name, tmp);
    45         printf("Filename is : -> %s
    ", change_file_name);
    46     }
    47 
    48     return 0;
    49 }
    50 
    51 
    52              
  • 相关阅读:
    循环顺序队列
    iscsi与multipath
    MySQL 数据库设计 笔记与总结(4)维护优化
    [Swift]LeetCode6. Z字形变换 | ZigZag Conversion
    [Swift]八大排序算法(八):基数排序
    [Swift]八大排序算法(七):归并排序
    [Swift]八大排序算法(六):希尔排序
    [Swift]八大排序算法(五):插入排序
    [Swift]八大排序算法(四):堆排序
    [Swift]八大排序算法(三):选择排序 和 简单选择排序
  • 原文地址:https://www.cnblogs.com/sn-dnv-aps/p/3192298.html
Copyright © 2011-2022 走看看