![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C语言-Python-Shell-工具
文章平均质量分 55
C语言-Python-Shell-工具
代码改变世界ctw
ARMv8/ARMv9/TEE/安全/芯片
展开
-
python3使用ed25519算法对文件进行签名
【代码】python3使用ed25519算法对文件进行签名。原创 2024-02-22 23:47:40 · 537 阅读 · 0 评论 -
C语言字节对齐
按照数组的定义,数组中所有元素都是紧挨着的,如果我们不把结构的大小补充为4的整数倍,那么下一个结构的起始地址将是0x0000A,这显然不能满足结构的地址对齐了,因此我们要把结构补充成有效对齐大小的整数倍.其实诸如:对于char型数据,其自身对齐值为1,对于short型为2,对于int,float,double类型,其自身对齐值为4,这些已有类型的自身对齐值也是基于数组考虑的,只是因为这些类型的长度已知了,所以他们的自身对齐值也就已知了.又C的自身对齐值为4,所以C的有效对齐值为2。转载 2023-07-25 07:41:14 · 393 阅读 · 1 评论 -
optee打印二进制
1、将如下代码移植到你的c文件。2、 打印二进制的方法如下所示。原创 2023-07-14 00:22:58 · 249 阅读 · 0 评论 -
Trustonic TEE打印二进制
1、将如下代码移植到你的c文件。2、 打印二进制的方法如下所示。原创 2023-07-14 00:20:20 · 137 阅读 · 0 评论 -
git rm --cached capstone
git rm --cached capstone原创 2021-03-21 18:45:14 · 31 阅读 · 0 评论 -
C语言快速入门系列【目录】
C语言原创 2023-03-18 10:13:18 · 76 阅读 · 0 评论 -
第十章:文件
C系统提供了丰富的系统文件,称为库文件,C的库文件分为两类,一类是扩展名为".h"的文件,称为头文件, 在前面的包含命令中我们已多次使用过。程序第16行以读写方式打开二进制文件“stu_list”,输入二个学生数据之后,写入该文件中, 然后把文件内部位置指针移到文件首,读出两块学生数据后,在屏幕上显示。fopen函数用来打开一个文件,其调用的一般形式为: 文件指针名=fopen(文件名,使用文件方式) 其中,“文件指针名”必须是被说明为FILE 类型的指针变量,“文件名”是被打开文件的文件名。原创 2023-03-18 10:02:36 · 52 阅读 · 0 评论 -
第九章:预处理
第15行使用了复合的位运算符"&=“, 该行相当于: pbit->b=pbit->b&3位域b中原有值为7,与3作按位与运算的结果为3(111&011=011,十进制值为3)。在“枚举”类型的定义中列举出所有可能的取值, 被说明为该“枚举”类型的变量取值不能超过定义的范围。其功能是把“>> ”左边的运算数的各二进位全部右移若干位,“>>”右边的数指定移动的位数。二、枚举变量的说明 如同结构和联合一样,枚举变量也可用不同的方式说明, 即先定义后说明,同时定义说明或直接说明。枚举值是常量,不是变量。原创 2023-03-18 10:04:05 · 63 阅读 · 0 评论 -
第八章:枚举,位运算
第15行使用了复合的位运算符"&=“, 该行相当于: pbit->b=pbit->b&3位域b中原有值为7,与3作按位与运算的结果为3(111&011=011,十进制值为3)。在“枚举”类型的定义中列举出所有可能的取值, 被说明为该“枚举”类型的变量取值不能超过定义的范围。其功能是把“>> ”左边的运算数的各二进位全部右移若干位,“>>”右边的数指定移动的位数。二、枚举变量的说明 如同结构和联合一样,枚举变量也可用不同的方式说明, 即先定义后说明,同时定义说明或直接说明。枚举值是常量,不是变量。原创 2023-03-18 10:01:30 · 64 阅读 · 0 评论 -
第七章:结构与联合
指针简介指针是C语言中广泛使用的一种数据类型。 运用指针编程是C语言最主要的风格之一。利用指针变量可以表示各种数据结构; 能很方便地使用数组和字符串; 并能象汇编语言一样处理内存地址,从而编出精练而高效的程序。指针极大地丰富了C语言的功能。 学习指针是学习C语言中最重要的一环, 能否正确理解和使用指针是我们是否掌握C语言的一个标志。同时, 指针也是C语言中最为困难的一部分,在学习中除了要正确理解基本概念,还必须要多编程,上机调试。只要作到这些,指针也是不难掌握的。指针的基本概念 在计算机中,所有的数据都是存原创 2023-03-18 10:00:56 · 152 阅读 · 0 评论 -
第六章:指针
指针简介指针是C语言中广泛使用的一种数据类型。 运用指针编程是C语言最主要的风格之一。利用指针变量可以表示各种数据结构; 能很方便地使用数组和字符串; 并能象汇编语言一样处理内存地址,从而编出精练而高效的程序。指针极大地丰富了C语言的功能。 学习指针是学习C语言中最重要的一环, 能否正确理解和使用指针是我们是否掌握C语言的一个标志。同时, 指针也是C语言中最为困难的一部分,在学习中除了要正确理解基本概念,还必须要多编程,上机调试。只要作到这些,指针也是不难掌握的。指针的基本概念 在计算机中,所有的数据都是存原创 2023-03-18 10:00:22 · 35 阅读 · 0 评论 -
第五章:函数
概述在第一章中已经介绍过,C源程序是由函数组成的。 虽然在前面各章的程序中都只有一个主函数main(), 但实用程序往往由多个函数组成。函数是C源程序的基本模块, 通过对函数模块的调用实现特定的功能。C语言中的函数相当于其它高级语言的子程序。 C语言不仅提供了极为丰富的库函数(如Turbo C,MS C 都提供了三百多个库函数),还允许用户建立自己定义的函数。用户可把自己的算法编成一个个相对独立的函数模块,然后用调用的方法来使用函数。可以说C程序的全部工作都是由各式各样的函数完成的, 所以也把C语言称为函数原创 2023-03-18 09:59:47 · 123 阅读 · 0 评论 -
第四章: 数组
数 组数组在程序设计中,为了处理方便, 把具有相同类型的若干变量按有序的形式组织起来。这些按序排列的同类数据元素的集合称为数组。在C语言中, 数组属于构造数据类型。一个数组可以分解为多个数组元素,这些数组元素可以是基本数据类型或是构造类型。因此按数组元素的类型不同,数组又可分为数值数组、字符数组、指针数组、结构数组等各种类别。本章介绍数值数组和字符数组,其余的在以后各章陆续介绍。数组类型说明 在C语言中使用数组必须先进行类型说明。 数组说明的一般形式为: 类型说明符 数组名 [常量表达式],……; 其中,原创 2023-03-18 10:00:54 · 95 阅读 · 0 评论 -
第三章 C语言程序设计初步
5&&c&&(j=8)式,由于i==5为假,即值为0, 该表达式由两个与运算组成,所以整个表达式的值为0。对于式x+ y||i+j+k 由于x+y的值为非0,故整个或表达式的值为1。if语句用if语句可以构成分支结构。它根据给定的条件进行判断, 以决定执行某个分支程序段。C语言的if语句有三种基本形式。1.第一种形式为基本形式 if(表达式) 语句;其语义是:如果表达式的值为真,则执行其后的语句, 否则不执行该语句。其过程可表示为下图max=a;原创 2023-03-18 09:58:24 · 108 阅读 · 0 评论 -
第一章: C语言概论
说明是指变量的类型说明。因此,这两个函数在括号中的参数表都由以下两部分组成: “格式控制串”,参数表 格式控制串是一个字符串,必须用双引号括起来,它表示了输入输出量的数据类型。上例中程序的执行过程是,首先在屏幕上显示提示串,请用户输入两个数,回车后由scanf函数语句接收这两个数送入变量x,y中,然后调用max函数,并把x,y 的值传送给max函数的参数a,b。由于C语言的强大功能和各方面的优点逐渐为人们认识,到了八十年代,C开始进入其它操作系统,并很快在各类大、中、小和微型计算机上得到了广泛的使用。原创 2023-03-17 13:30:25 · 63 阅读 · 0 评论 -
Python脚本一键给多个视频批量添加片头
Python脚本一键给多个视频批量添加片头ModuleNotFoundError: No module named ‘moviepy’pip install --trusted-host pypi.python.org moviepy原创 2022-11-19 14:09:15 · 765 阅读 · 2 评论 -
嵌入式编程-C语言使用小技巧
编译时条件不成立,则发生Assert#define COMPILE_TIME_ASSERT(x) \ do { \ switch (0) { case 0: case ((x) ? 1: 0): default : break; } \ } while (0)#endif剖析: 实现原理,其实就是当x为false是,switch case中写了两遍case 0,此时编译会报错.使用示例:COMPILE_TIME_ASSERT(XLAT_TABLES_SIZE == sizeof(xla原创 2021-08-25 23:54:38 · 239 阅读 · 0 评论 -
全局变量/static静态变量在section段中的分布
(注:本实验在x86架构下gcc编译器下完成)我们先做一个有关static变量的实验#include <stdio.h>static char txbuf1[1021] ={0};static char txbuf2[20];int main(){ static char txbuf3[30] ={0}; static char txbuf4[40]; static char txbuf5[40]; txbuf1[0] = 1; txbuf2[0] = 2; txb原创 2021-08-05 16:36:45 · 355 阅读 · 0 评论 -
Linux Shell的dirname和readlink的使用
1、背景有时候写一个脚本,然后在脚本中调用makefile等一些列操作,在脚本中希望有一个固定的路径…例如:下面有一个场景,你是无法预知用户是哪个路径下敲几build.sh的而在build.sh中,你有希望有一个确切的路径,才好调用makefile文件make -f Locals/Code/makefile.mk “$@”2、对策和方法使用dirname和readlink命令获取执行makefile文件的路径cd $(dirname $(readlink -f $0))cd …/…原创 2021-04-27 13:25:51 · 1200 阅读 · 0 评论 -
python批量处理jira上的issue
import sysimport osimport shutilimport timefrom selenium import webdriverfrom selenium.webdriver.common.action_chains import ActionChainsfrom selenium.webdriver.common.keys import Keysimport urllib.requestimport jsonimport _threadbuf = '''原因原创 2021-04-07 14:24:35 · 1166 阅读 · 0 评论 -
GCC,Clang,make,cmake,makefile,CMakeLists.txt的概念
gcc和clanggcc和clang是两个不同的编译器make和cmakemake和cmake是搭配编译器来方便用户进行多文件编译而发明的工具makefilemake工具相当于一个智能的批处理工具,本身没有编译和链接的功能,而是用类似于批处理的方式通过调用makefile文件中用户指定的命令来进行编译和链接。而makefile又是什么,就相当于用户将要执行的一系列命令,make根据makefile中的命令对相应的源文件进行编译和链接的CMakeLists.txt但是如果你自己要..原创 2021-04-16 10:41:35 · 703 阅读 · 0 评论 -
python3:读取目录下的文件名字生成html所需的格式
# encoding=utf8 import sysimport osimport shutilimport timeimport reimport randomimport string# ran_str = ''.join(random.sample(string.ascii_letters + string.digits, 8))def gen_html(path): print(path) if os.path.exists(path): if原创 2021-02-24 19:36:46 · 314 阅读 · 0 评论 -
python自动化测试locksetting/gatekeeper/keymaster/vts等
test@test-pc:~/workspace/share/testcase/test_tee$ tree ..├── resource│ ├── googlekey│ │ ├── default_googlekey.bin│ │ └── kmsetkey_ca│ └── vts_testcase│ ├── VtsHalBiometricsFaceV1_0TargetTest│ │ ├── arm│ │ │ └──原创 2021-03-04 14:32:55 · 480 阅读 · 1 评论 -
git命令总结
命令解释备注git init初始化仓库git clone拷贝一份远程仓库,也就是下载一个项目git add添加文件到仓库git status查看仓库当前的状态,显示有变更的文件。git diff比较文件的不同,即暂存区和工作区的差异。git commit提交暂存区到本地仓库。git reset回退版本。git rm删除工作区文件。git mv移动或重命名工作区文件git remote远程仓库操作...原创 2021-03-26 17:46:46 · 266 阅读 · 0 评论 -
Linux shell字符串截取与拼接
假设有变量 var=https://blog.csdn.net/weixin_42135087/article/details/1070371451、 # 号截取,删除左边字符,保留右边字符。echo ${var#*//}其中 var 是变量名,# 号是运算符,*// 表示从左边开始删除第一个 // 号及左边的所有字符即删除 https://结果是 :blog.csdn.net/weixin_42135087/article/details/1070371452、 ## 号截取,删除左边字符原创 2021-03-14 12:47:39 · 1119 阅读 · 0 评论 -
python编写一个压测重启的测试程序
文章目录1、python脚本2、制作成exe3、双击exe,运行1、python脚本import timeimport subprocessdef test_reboot(testcount): print("Start to test reboot.") count = 0 while True: output = subprocess.getstatusoutput("adb wait-for-device") output = sub原创 2021-03-11 13:00:39 · 455 阅读 · 1 评论 -
python编写测试工具:tee的相关vts测试
文章目录1、用于vts测试TEE的python脚本目标: 将testcase于环境剥离,用户在window上双击exe程序,或在ubuntu上执行脚本程序,即可完成测试思路如下图所示:)1、用于vts测试TEE的python脚本(vts_for_tee.py)# coding=utf8import sysimport osimport shutilimport timeimport randomimport subprocessimport getoptimport js原创 2021-03-11 12:50:34 · 610 阅读 · 1 评论 -
C语言:构建一个二级链表并完成增删改查
构建一个下图所示的链表,并完成增、删、改、查示例代码:#include <stdio.h>#include <stdlib.h>#include <string.h>#define uint32_t intstruct key_list { char keyid[20]; struct key_list *next;};struct app_list { char app_name[20]; struct key_list *key_hea原创 2021-03-11 12:29:21 · 1096 阅读 · 0 评论 -
python报错:UnicodeDecodeError: ‘ascii‘ codec can‘t decode byte 0xe0 in position 0: ordinal not in rang
在执行下面这段代码是,报错:UnicodeDecodeError: ‘ascii’ codec can’t decode byte 0xe0 in position 0: ordinal not in range(128) (magic,img_type, img_size, algo, digest_len, sig_len)=struct.unpack("IIIIHH",img[0:20]) if magic == 0x4f545348: img=img[20+16+4+原创 2021-01-27 13:12:17 · 1408 阅读 · 0 评论 -
travis-ci中的checkpatch工具使用
文章目录1、使用checkpatch的详细操作步骤2、snapshot3、完整log1、使用checkpatch的详细操作步骤$ git clone https://github.com/OP-TEE/optee_os.git OP-TEE/optee_os$ export TRAVIS_COMPILER=gcc$ export CC=${CC:-gcc}$ export CC_FOR_BUILD=${CC_FOR_BUILD:-gcc}$ gcc --version$ sudo apt-g原创 2021-01-27 12:50:12 · 1907 阅读 · 0 评论 -
github:已经提交并push后再次追加提交
①修改倒数第1次的commit指令:$ git rebase -i HEAD~1②修改pick为edit①回车后进入一个页面,按i进入编辑模式,将要修改的那一条的pick修改成edit,按esc退出编辑模式,输入:wq保存并退出③修改commit注释内容指令: $ git commit --amend按i进入编辑模式,修改内容,退出编辑模式,输入:wq保存并退出④$ git rebase --continue⑤强制push$ git push --force github例如:t原创 2021-01-26 18:19:58 · 3747 阅读 · 0 评论 -
[工具]-脚本自动化工具:按照linux kernel标准格式化输出文件(format_file)
import sysimport osconditional_str = [ "if", "while", "for"]def table_space(tag_count): total_str="" if tag_count == 0: return total_str for num in range(0,tag_count): total_str += '\t' return total_strdef is_space_line(line): if '' ==原创 2020-10-19 20:03:07 · 1970 阅读 · 2 评论 -
[工具]-C语言中字符串的形式打印16进制数据
C语言中字符串的形式打印16进制数据。 这样写,输出更直观些#define PRINT_BUF_MAX (32)#define TAG_STRING_MAX (32)static void print_step_hex_data(const char *tag, void *pbuf, size_t len){ int i; char buf[PRINT_BUF_MAX * 4] = {0}; char temp_buf[4] = {0}; sprintf(buf,"%s",tag原创 2020-06-03 11:52:51 · 6083 阅读 · 0 评论 -
[工具]-C语言实现:生成一个全是0x0的二进制文件
如何生成一个全是0x0的二进制文件,如生成一个1M的文件,其数据全部是0x0.c语言代码:实现原理:新建打开一个文件,移动文件指针到0x100000(1M)处,然后随便写个字符。运行程序,生成后,再去掉结尾处多余的那个字符。#include <stdio.h>void generate_zero(char *name){ FILE *fp; fp = fo......原创 2020-01-17 13:26:18 · 2454 阅读 · 1 评论 -
C语言:删除rsa pem文件首行/尾行/换行符
1、将rsa pem文件,删除首行和尾行,删除换行符#include <stdio.h>#include <string.h>#include <stdlib.h>#define PUB_KEY_MAX 2048#define PUB_PATH "test4_priv.pem"//#define PUB_PATH "prikey_4.pem"static int read_data_from_file(void *pathname,void *buf,原创 2020-06-17 13:14:35 · 1857 阅读 · 0 评论 -
linux shell数学函数实现
#-------------( mathematical function)-----------------#function hex_to_deci() #16 ---> 10{ local a=$1 local result result=$(awk 'BEGIN{printf('$a')}') echo $result}function deci_to_hex()...原创 2020-01-17 13:20:38 · 1344 阅读 · 0 评论 -
linux shell变量while循环内改变无法传递到循环外
代码示例如下图所示,在while中变量namelist、image_hash无法传到循环外部。原因:使用了管道的缘故,当启用管道时,会生成一个subshell,while循环的代码在subshell中执行function generate_ota_package(){ local namelist=$filelist" "$ota_hash_sig openssl sha -sha25...原创 2019-12-05 17:47:48 · 2817 阅读 · 0 评论 -
leetcode-C语言代码练习
给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]/** * Note: The returned array must be malloced, assume caller call原创 2021-01-04 19:30:26 · 2411 阅读 · 0 评论 -
python:将32位的16进制数据以二进制/hex/binary的形式写入到文件
如0x1234,写入到文件应该是hex:[00 00 12 23]import sysimport osimport structdef tran_string_to_binary(x2): temp_list = [] str_x2 = str(hex(x2))[2:].rstrip() if (len(str_x2))%2 == 1: str_x2 = "0" + str_x2 for i in range(0, int((8 - len(str_x2))/2)): .原创 2020-11-30 19:21:47 · 1219 阅读 · 0 评论 -
python常用指令速查
文章目录(1)、split和rsplit(1)、split和rsplitpath = /home/username/data/text.txt path.split("/")["home","username","data","text.txt "]使用rsplit:path.rsplit("/",1)["/home/username/data","text.txt "]注意:rsplit("/",1) 中的1,表示从后面分割1个出来,如果是2,那么就是分割两部分出来...原创 2020-11-09 12:00:44 · 1056 阅读 · 0 评论