tst

c语言数字转字符串

落花浮王杯 提交于 2020-03-01 01:43:13
对下面代码的一些细节,解释下为什么那么做。 1. char buf[sizeof(int) * 8 + 1] = ""; 这个buf的作用是缓存中间结果,长度没有写死。好处是不同的平台上这段代码都可以执行。 2. if (base < 2 || base > 36) 该判断检查用户传入的进制数是否合法。base < 2 主要过滤负数和0和1。base > 36的意义是在超过10进制的数里,是用字母a表示10的。以此类推z可以表示36。在只使用ascii字符表示大于10的数时,最大的表示值是36,超过这个值就不能表示。 3. uval = -val; 这各写法可以避免一个潜在的坑。当val为int值为INT_MIN时 -val会溢出。表象为-val 的值还是INT_MIN,还是个负数 4.至于为什么用一个无符号整数与一个>0的int进行整除与取余 uval % base uval /= base 因为c语言的标准里没有规定x / y当有一个值为负数时,结果该向x坐标轴的左侧靠近(向0取整) 还是向侧靠近(负无穷) 它只规定了 (x / y) * y + (x % y) = x -14 /5 的结果可以是 -2 或者 -3 至为正数为啥没有两个结果。本人只是用了几个值进行了验证。。 好了贴代码: #include <stdio.h> #include <limits.h>

stat函数(stat、fstat、lstat)

試著忘記壹切 提交于 2020-02-07 08:54:20
#include <sys/types.h> #include <sys/stat.h> #include <unistd.h> //需包含头文件 有如下三个函数的函数原型: int stat(const char *path, struct stat *buf); 第一个形参:指出文件(文件路径); 第二个形参:出参数(函数对该参数操作,然后传出)。 int fstat(int fd, struct stat *buf); fstat函数与stat函数的功能一样,只是第一个形参是文件描述符。 int lstat(const char *path, struct stat *buf); lstat函数的形参跟stat函数的形参一样。其功能也跟stat函数功能一样,仅有一点不同:stat函数是穿透(追踪)函数,即对软链接文件进行操作时,操作的是链接到的那一个文件,不是软链接文件本身;而lstat函数是不穿透(不追踪)函数,对软链接文件进行操作时,操作的是软链接文件本身。 以上三个函数:成功返回0,失败返回-1,并且将详细错误信息赋值给errno全局变量。 其它Linux系统函数类似,带l表示不追踪,不带l表示追踪(穿透)。如:ls –l命令查看的文件属性,是不追踪(不穿透)的;rm删除文件时,是不追踪的;Vi和Vim是穿透的;对于穿透的命令,是无法判断文件是不是软链接文件,比如ls

git diff 命令用法

夙愿已清 提交于 2020-02-04 03:02:36
理解git diff的前提,首先要理解git中工作区,暂存区,本地版本库的概念,如果头脑中有这些概念,接着往下读。 git diff test.c 用来查看工作区和暂存区中test.c文件的区别。 git diff HEAD -- test.c 用来查看工作区和本地版本库中test.c文件的区别。 eg: a. 在工作区中修改文件cfm_test.c,git diff cfm_test.c 和 git diff HEAD -- cfm_test.c 分别输出如下: [3me]$ git diff cfm_test.c @@ -45,7 +45,11 @@ cfm_test_init () tst->tst_data = XCALLOC (MTYPE_ITUT_CFM_MSG, CFM_TST_PDU_MAX_LENGTH); if (!tst->tst_data) { - XFREE (MTYPE_ITUT_CFM_MSG, tst->tst_data); +#if defined(CONFIG_DS_COVERITY) + XFREE( MTYPE_ITUT_CFM_TST, tst); +#else + XFREE (MTYPE_ITUT_CFM_MSG, tst->tst_data); +#endif return NULL; } [3me]$ git diff HEAD -

SVM-opencv

可紊 提交于 2019-12-30 02:17:30
#include <cv.h> #include <highgui.h> #include <ml.h> #include <iostream> #include <fstream> #include <string> #include <vector> using namespace std; #define WIDTH 28 #define HEIGHT 30 int main( /*int argc, char** argv*/ ) { vector<string> img_path; vector<int> img_catg; int nLine = 0; string buf; ifstream svm_data( "SVM_DATA.txt" ); while( svm_data ) { if( getline( svm_data, buf ) ) { nLine ++; if( nLine % 2 == 1 ) { img_catg.push_back( atoi( buf.c_str() ) ); } else { img_path.push_back( buf ); } } } svm_data.close(); CvMat *data_mat, *res_mat; int nImgNum = nLine / 2; data_mat = cvCreateMat(

GDB调试

╄→гoц情女王★ 提交于 2019-12-25 06:41:19
概述:   GDB是UNIX下强大的调试工具,如果在UNIX下调试C/C++程序,GDB会比IDE的调试工具更好使。   要调试C/C++的程序,首先在编译时,我们必须要把调试信息加到可执行文件中。使用编译器(cc/gcc/g++)的 -g 参数可以做到这一点。如:   如果没有-g,你将看不见程序的函数名、变量名,所代替的全是运行时的内存地址。当你用-g把调试信息加入之后,并成功编译目标代码以后,让我们来看看如何用gdb来调试他。 启动gdb   启动GDB的方法有以下几种: 1、gdb <program> program也就是你的执行文件,一般在当然目录下。如果你需要带 argv[] ,则需要选项 -args 2、gdb <program> core 用gdb同时调试一个运行程序和core文件,core是程序非法执行后core dump后产生的文件。 3、gdb <program> <PID> 如果你的程序是一个服务程序,那么你可以指定这个服务程序运行时的进程ID。gdb会自动attach上去,并调试他。program应该在PATH环境变量中搜索得到。    GDB实现的功能: 按自定义的要求来运行程序。 可让被指定的程序在你所设置的断点处停住 当程序被停住时,检查你的程序中所发生的所有事。 动态低改变运行环境   可能从这几点你会觉得和IDE的调试没什么两样

python使用logging进行日志配置

六月ゝ 毕业季﹏ 提交于 2019-12-09 20:30:19
1. logging介绍 Python的logging模块提供了通用的日志系统,可以方便第三方模块或者是应用使用。这个模块提供不同的日志级别,并可以采用不同的方式记录日志,比如文件,HTTP GET/POST,SMTP,Socket等,甚至可以自己实现具体的日志记录方式。 logging模块与log4j的机制是一样的,只是具体的实现细节不同。 模块提供logger,handler,filter,formatter: 1)logger:提供日志接口,供应用代码使用。logger最长用的操作有两类:配置和发送日志消息。可以通过logging.getLogger(name)获取logger对象,如果不指定name则返回root对象,多次使用相同的name调用getLogger方法返回同一个logger对象。 2)handler:将日志记录(log record)发送到合适的目的地(destination),比如文件,socket等。一个logger对象可以通过addHandler方法添加0到多个handler,每个handler又可以定义不同日志级别,以实现日志分级过滤显示。 3)filter:提供一种优雅的方式决定一个日志记录是否发送到handler。 4)formatter:指定日志记录输出的具体格式。formatter的构造方法需要两个参数:消息的格式字符串和日期字符串

tst

雨燕双飞 提交于 2019-12-05 04:31:56
前言: 达梦数据库表字段涉及到表的主键问题,需要设置主键、非空等特性。 总结: 1、修改数据表字段类型和长度 --设置字段类型和长度 alter table "SYSDBA"."MY_TABLE" modify "ID" VARCHAR2(50); 2、增加和去除唯一性设置 注意:唯一性与主键互斥,只能选其一。获取唯一性约束的KEY,参见后面的语句。 --增加唯一 alter table "SYSDBA"."MY_TABLE" add constraint U_ID unique(id); --去掉唯一 alter table "SYSDBA"."MY_TABLE" drop constraint U_ID ; 3、设置可空或不可空特性 --可空 alter table "SYSDBA"."MY_TABLE" alter column "ID" set null; --非空 alter table "SYSDBA"."MY_TABLE" alter column "ID" set not null; 4、增加主键和去除主键 --增加主键 alter table "SYSDBA"."MY_TABLE" add primary key("ID"); --去掉主键 alter table "SYSDBA"."MY_TABLE" drop constraint "CONS134237151

Adding multiple columns in a dplyr mutate call

匿名 (未验证) 提交于 2019-12-03 01:17:01
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试): 由 翻译 强力驱动 问题: I have a data frame with a dot-separated character column: > set . seed ( 310366 ) > tst = data . frame ( x = 1 : 10 , y = paste ( sample ( c ( "FOO" , "BAR" , "BAZ" ), 10 , TRUE ), "." , sample ( c ( "foo" , "bar" , "baz" ), 10 , TRUE ), sep = "" )) > tst x y 1 1 BAR . baz 2 2 FOO . foo 3 3 BAZ . baz 4 4 BAZ . foo 5 5 BAZ . bar 6 6 FOO . baz 7 7 BAR . bar 8 8 BAZ . baz and I want to split that column into two new columns containing the parts on either side of the dot. str_split_fixed from package stringr can do the job quite

应用安全培训

匿名 (未验证) 提交于 2019-12-03 00:22:01
安全意识、应用程序漏洞评估、修复和预防等内容的培训,涵盖了从安全意识到安全的代码和设计、安全工 程和安全测试基础等主题,提高应用安全相关的专业知识,培养安全开发合规性及学习安全编码的最佳实践。 分角色的培训课程,面向不同的组织角色,包括开发人员、软件架构师、项目经理和测试 / 质量保证人员等。 安全意识培训 开发人员 AWA 030. 应用安全原则 AWA 031. 安全处理输入与输出 AWA 032. 应用安全简介 AWA 033. 密码学简介 AWA 034. 安全管理 SDLC AWA 035. OWASP Top 10 AWA 036. 安全开发模式与实践 AWA 037. 应用安全目标与控制 AWA 040. C 与 C++ 安全开发简介 AWA 041. C 与 C++ 整数问题 AWA 042. C 与 C++ 内存损坏问题 AWA 050. Java 认证与授权 AWA 051. Java 数据安全 AWA 052. 安全处理 Java 中的输入与输出 AWA 053. Java 安全数据库访问 AWA 054. Java 会话管理 AWA 060. 移动安全开发简介 Android AWA 061. 通过移动 App 安全访问网络资源 iOS AWA 062. 通过移动 App 安全访问网络资源 Android AWA 063. 移动安全开发简介 iOS AWA

Github库名命名规范

匿名 (未验证) 提交于 2019-12-02 23:49:02
由于迁移到Github上的项目越来越多,对项目的管理越来越困难。由于各项目命名具有随意性,用之代表git仓库名后就很难快速回忆起这个项目的相关细节,通常需要不断打开某个库才能有所了解。因此,十分必要对git库名命名方式进行规范以便于项目的管理。 GIT库名一律采用项目名-类型-年月的形式。其中对项目名的规范如下: 库名中不得出现下述规定的字符 - \ @ ! # $ % ^ & * () [] {} | \ ; : '' ’ , 。 《 》 < > ・ ~ 。 库名应尽量避免使用 名.名 的形式。 库名应尽量使用英文,禁止使用中文字符。一般情况下,库名中出现的各个单词的首字母应使用大写。各个单词不能使用连接符 -连接;如有必要,应使用下划线 _ 。 缩写的单词一律使用大写。 对类型的规定如下: TST――测试项目 BC――已完成项目 SUS――被搁置项目 ING――正在进行的项目 TST-BC――已完成的测试项目 TST-SUS――被搁置的测试项目 TST-ING――正在进行的测试项目