sprintf

【FPGA篇章七】FPGA系统任务:详述常用的一些系统函数以及使用方法

强颜欢笑 提交于 2020-08-09 16:28:47
欢迎大家关注我的微信公众账号,支持程序媛写出更多优秀的文章 系统任务和系统函数是Verilog标准的一部分,都以字符"$"为开头。系统任务可划分为六类,下面分别给出一些常用任务的用法。 1 显示任务   1.1 display和write任务   向终端或文件写入值时,系统会自动决定表达式参数值的位置大小。   比如一个16bit大小的数,用十六进制需要4个字符宽度(最大FFFF),用十进制需要5个字符宽度(最大65535)。   如果在%和radix间加一个0,可以取消这种自动决定的机制,看下面的示例: 1 reg [ 15 : 0 ] data = 200 ; 2 initial $display( " data: %d. " , data); // data: 200. 数据占5个字符 3 initial $display( " data: %0d. " , data); // data: 200. 数据占3个字符   1.2 strobe监控   $strobe使用的参数(包括所有转义字符、格式控制)和$display完全相同。     这组系统任务$strobe、$strobeb、$strobeo、$strobeh可以在选择的时间点处显示仿真数据。   当前仿真时刻的其它所有语句、事件执行完后,$strobe系统任务才会执行,以确保显示的是正确的数据。示例如下: 1

C和C++安全编码笔记:格式化输出

丶灬走出姿态 提交于 2020-08-09 11:45:02
C标准中定义了一些可以接受可变数量参数的格式化输出参数,参数中包括一个格式字符串。printf()和sprintf()都是格式化输出函数的例子。 格式化输出函数是由一个格式字符串和可变数目的参数构成的 。在效果上,格式化字符串提供了一组可以由格式化输出函数解释执行的指令。因此,用户可以通过控制格式字符串的内容来控制格式化输出函数的执行。格式化输出函数是一个变参函数,也就是说它接受的参数个数是可变的。变参函数在C语言中实现的局限性导致格式化输出函数的使用中容易产生漏洞。 6.1 变参函数:<stdarg.h>头文件声明了一种类型并定义了四个宏,用于传递一组参数列表,在编译时被调用的函数对这些参数的数量和类型是不了解的。 变参函数是通过使用一个部分参数列表后跟一个省略号进行声明的 。 省略号必须出现在参数列表的最后。参数列表的终止条件是函数的实现者和使用者之间的一个契约 。 int average(int first, ...) { va_list marker; // 在使用变量marker之前,首先必须调用va_start()对参数列表进行初始化 // 定参first允许vs_start()决定第一个变参的位置 va_start(marker, first); int count = 0, sum = 0, i = first; while (i != -1) { sum += i

MATLAB实例:二维散点图

穿精又带淫゛_ 提交于 2020-08-08 12:18:53
MATLAB实例:二维散点图 作者:凯鲁嘎吉 - 博客园 http://www.cnblogs.com/kailugaji/ 更多请看: 随笔分类 - MATLAB作图 用MATLAB实现简单的散点图的绘制,可以自行设置点的形状与颜色,可以去掉坐标轴边框。 数据来源: MATLAB高斯混合数据的生成 将二维数据保存为gauss.txt。 1. demo.m % data_load: https://www.cnblogs.com/kailugaji/p/10861064.html % data_load: 前两列是二维数据,最后一列是类标签 data_load=dlmread('.\gauss.txt'); figure(1) plot(data_load(data_load(:, end)==1, 1), data_load(data_load(:, end)==1, 2), 'b.', 'MarkerSize',12 ); hold on plot(data_load(data_load(:, end)==2, 1), data_load(data_load(:, end)==2, 2), 'r^', 'MarkerSize',6, 'MarkerFaceColor','r'); plot(data_load(data_load(:, end)==3, 1), data

php实现统计IP数及在线人数

痴心易碎 提交于 2020-08-08 05:17:56
原文地址: https://www.wjcms.net/archives/php实现统计ip数及在线人数 写在前面的话 很多人有这样的需求,就是统计网站访问IP以及在线的人数。今天我们就看一下具体实现方法。 开启依赖函数模块 实现这个功能,需要依赖putenv()函数。下面两种方式均可。 更改php.ini文件方法 找到php.ini文件,搜索putenv关键字,删除即可。 isable_functions = passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror

PHP字符串加密解密

白昼怎懂夜的黑 提交于 2020-08-08 04:28:12
/** * 字符串加密、解密函数 * @param string $string 字符串 * @param string $operation ENCODE为加密,DECODE为解密,可选参数,默认为ENCODE, * @param string $key 密钥:数字、字母、下划线 * @param int $expiry 过期时间 * @return string */ function str_crypt($string, $operation = 'ENCODE', $key = '', $expiry = 0) { $key_length = 4; $key = md5($key != '' ? $key : KEY); $fixedkey = md5($key); $egiskeys = md5(substr($fixedkey, 16, 16)); $runtokey = $key_length ? ($operation == 'ENCODE' ? substr(md5(microtime(true)), -$key_length) : substr($string, 0, $key_length)) : ''; $keys = md5(substr($runtokey, 0, 16) . substr($fixedkey, 0, 16) . substr(

gin form validator

坚强是说给别人听的谎言 提交于 2020-08-07 06:17:18
validator.go 封装一个统一处理验证消息的文件 package goo import ( "fmt" "github.com/go-playground/validator" "strings" ) func ValidationMessage(err error, msgs map[string]string) string { for _, i := range err.(validator.ValidationErrors) { key := fmt.Sprintf("%s_%s", strings.ToLower(i.Field()), strings.ToLower(i.Tag())) if msg, ok := msgs[key]; ok { return msg } msg := fmt.Sprintf("%s %s", i.Field(), i.Tag()) return msg } return err.Error() } address.go 这是一个使用demo type AddressDelete struct { Id int64 `json:"id" binding:"required"` } func (this AddressDelete) DoHandle(c *gin.Context) { if err := c.ShouldBind(

WinCC的电子签名与审计追踪 2.0

有些话、适合烂在心里 提交于 2020-08-06 20:33:05
之前写过一篇 WinCC的电子签名与审计追踪 ,在那篇文章中使用报警操作记录生成审计追踪,后来测试VB脚本执行的情况,发现审计追踪中缺少执行该操作的用户名和计算机名,用C脚本执行倒是没有问题。在本文中再补充一个用InserAuditEntryNew生成审计追踪的方法,并且不再把电子签名和审计追踪做在一个函数里,将电子签名和审计追踪分成两个函数分别执行可以更灵活。 目录 生成审计追踪的方法 VB脚本的电子签名和审计追踪 VB脚本的InsertAuditEntryNew函数 VB脚本的审计追踪 VB脚本的电子签名 VB脚本的电子签名和审计追踪示例 VB脚本的写入变量新值的封装函数 C脚本的电子签名和审计追踪 C脚本的InsertAuditEntryNew函数 C脚本的审计追踪 C脚本的电子签名 C脚本的电子签名和审计追踪示例 C脚本的写入变量新值的封装函数 向数值类型的变量写入新值 向字符串类型的变量写入新值 查看Audit记录 生成审计追踪的方法 用脚本向Audit中添加记录有两种方法,一种方法是用WinCC提供的InserAuditEntryNew函数写入,另一种方法是生成属于“操作员输入消息”类型的报警消息,该报警消息同时也会记录到Audit中。 WinCC中的某些操作本身就会生成审计追踪记录,例如启动或关闭系统、登录用户等

golang 反射 reflect demo

柔情痞子 提交于 2020-08-06 14:03:05
package main import ( "fmt" "go/ast" "reflect" ) type Member struct { Id int `json:"id" orm:"member_id"` Name string `json:"name"` status bool } func (m *Member) SetStatus(s bool) { m.status = s } func (m *Member) GetStatus() bool { return m.status } func (m Member) String() string { return fmt.Sprintf("id: %d, name: %s", m.Id, m.Name) } // 如果是值传递那么反射获取的对象将不能修改此值,否则 panic func Parse(v interface{}) { // 获取 v 的变量值,如果是地址传递获取的是指针,值传递则为变量值 rValue := reflect.ValueOf(v) // 判断是否为一个指针,如果是指针就通过 Elem() 获取指针指向的变量值 rValue = reflect.Indirect(rValue) // 获取 v 的变量类型 rType := rValue.Type() // rType := reflect

C++:sscanf和sprintf的定义和使用

折月煮酒 提交于 2020-08-06 07:58:11
int sprintf ( char * str, const char * format, ... ); str - Pointer to a buffer where the resulting C-string is stored (should be large enough) format - same as format in printf ... - additional arguments return: strlen(str) - the total number of characters written char buffer [50]; int id = 1234567; int n = sprintf (buffer, "My ID is %d", id); // buffer: My ID is 1234567 // n: 16 参考资料: http://www.cplusplus.com/reference/cstdio/sprintf/ int sscanf ( const char * s, const char * format, ...); s - C string that the function processes as its source to retrieve the data. format - same as format in

php实现统计IP数及在线人数

无人久伴 提交于 2020-08-05 20:10:53
原文地址: https://www.wjcms.net/archives/php%E5%AE%9E%E7%8E%B0%E7%BB%9F%E8%AE%A1ip%E6%95%B0%E5%8F%8A%E5%9C%A8%E7%BA%BF%E4%BA%BA%E6%95%B0 写在前面的话 很多人有这样的需求,就是统计网站访问IP以及在线的人数。今天我们就看一下具体实现方法。 开启依赖函数模块 实现这个功能,需要依赖putenv()函数。下面两种方式均可。 更改php.ini文件方法 找到php.ini文件,搜索putenv关键字,删除即可。 isable_functions = passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl