char函数

[dts]Device Tree机制【转】

别来无恙 提交于 2019-12-02 16:51:13
转自: https://www.cnblogs.com/aaronLinux/p/5496559.html#t7 转自:http://blog.csdn.net/machiner1/article/details/47805069 ------------------Based on linux 3.10.24 source code 参考/documentation/devicetree/Booting-without-of.txt文档 目录 1. 设备树(Device Tree)基本概念及作用 2. 设备树的组成和使用 2.1. DTS和DTSI 2.2. DTC 2.3. DTB 2.4. Bootloader 3. 设备树中dts、dtsi文件的基本语法 3.1. chosen node 3.2. aliases node 3.3. memory node 3.4. 其他节点 3.4.1. Reg属性 3.4.2. Compatible属性 3.4.3. Interrupts属性 3.4.4. Ranges属性 4. DTB相关结构 4.1. Header 4.2. 字符串块 4.3. memory reserve map 5. 解析DTB的函数及相关数据结构 5.1. machine_desc结构 5.2. 设备节点结构体 5.3. 属性结构体 5.4.

C语言字符串处理函数

爷,独闯天下 提交于 2019-12-02 15:35:50
一、函数-----sprintf() 1、头文件:#include <stdio.h> 2、作用:sprintf()函数用于将格式化的数据写入字符串,其原型为:     int sprintf(char *str, char * format [, argument, ...]);   char *str:为要写入的字符串数组;   char *format: 格式化操作符,注意,该操作符对应后面的数据的格式。 3、用法举例:      #include<cstdio> #include<cstring> #define _CRT_SECURE_NO_WARNINGS using namespace std; int main() { char str[99], st[99]; strcpy(st, "hello"); int x = 12, y = 9; sprintf(str, "%d%d%s", x, y, st); puts(str); return 0; }out:129hello 来源: https://www.cnblogs.com/deep-sleep/p/11751859.html

C语言指针使用malloc的问题

故事扮演 提交于 2019-12-02 14:53:49
最近在回顾C语言知识点时发现自己对指针的使用有些生疏了,把遇到的问题记录下来,以加深对指针的理解。 首先看下面的示例,实现将字符串反转输出,如“abcdef”, 输出为“fedcba”, 实现起来是不是很简单? 一开始我也这样觉得,下面是我第一次实现的代码: int main(void) { char *src = "Hello, World"; char *dest = NULL; int len = 0; len = strlen(src); dest = (char *)malloc(len+1); if (dest == NULL) { printf("dest malloc failed.\n"); return 0; } while (len-- != 0) { *dest++ = src[len]; } *dest = 0; printf(“Sting dest: %s\n”, dest); free(dest); return 0; } 看起开没问题,使用gcc -o test test.c也顺利编译通过了,但执行./test时发现竟然报错了,错误如下: *** Error in `./test_bak': munmap_chunk(): invalid pointer: 0x00000000023f201c *** ======= Backtrace: =====

Educational Codeforces Round 75 (Rated for Div. 2)

风格不统一 提交于 2019-12-02 11:21:26
(体验到了胡出一道题但是写锅的绝望呢) A: 送分题。 #include<bits/stdc++.h> #define maxn 100005 #define maxm 500005 #define inf 0x7fffffff #define ll long long using namespace std; bool may[30]; char str[maxn]; inline int read(){ int x=0,f=1; char c=getchar(); for(;!isdigit(c);c=getchar()) if(c=='-') f=-1; for(;isdigit(c);c=getchar()) x=x*10+c-'0'; return x*f; } int main(){ int T=read(); while(T--){ scanf("%s",str+1); int n=strlen(str+1); memset(may,0,sizeof(may)); for(int i=1;i<=n;){ int j=i; while(str[j]==str[j+1]) j++; if((j-i+1)%2) may[str[i]-'a']=1; i=j+1; } for(int i=0;i<26;i++) if(may[i]) printf("%c",(char)(i+

c/c++总结

浪尽此生 提交于 2019-12-02 10:47:13
1. 0X0 0x0地址是NULL 2. Gdb调试子进程 1.set follow-fork-mode <parent/child> 这条命令可以用于在调试父进程或是子进程的模式之间进行切换。例如在 fork 函数执行之前执行 set follow-fork-mode child, 当 fork 执行后,设定在子进程上的断点将会有效,而父进程上的断点此时无效;反之依然。缺省 gdb 是调试主进程的。 2.attach<pid> GDB 有附着( attach )到正在运行的进程的功能,即 attach <pid> 命令。因此我们可以利用该命令 attach 到子进程然后进行调试。 3. Gdb调试nginx 多进程调试 #sudo gdb –q (gdb)shell ./nginx 如果只是gdb ./nginx 那么启动nginx还是单进程 4. Linux内核模块编写和makeFile编写 hello.c内容: #include <linux/module.h> #include <linux/init.h> static int hello_init(void) { printk( KERN_ALERT " hello world enter \n"); return 0; } static void hello_exit(void) { printk(KERN_ALERT

java编程总结;基础学习 day two

自闭症网瘾萝莉.ら 提交于 2019-12-02 10:45:40
一、java语法格式 1、main方法的作用:它是程序的入口,程序就是从主函数开始的,且main方法中的各个属性不能被改变。 2、java语言分隔符 ;(分号):被用于语句之间的分隔 {}(花括号):被花括号括起的代码表示为一个代码块,是一个整体,花括号要一起使用 [](方括号):主要用于定义数组及访问数组时使用 ()(圆括号):使用很广泛 .(圆点):一个类的对象访问它的方法或属性时使用 空格:分隔一条语句中的不同部分 3、注释的用法 注释:为了提高代码的可阅读性。 注释的分类: 单行注释://注释内容 多行注释:/*注释内容*/ 文本注释:/** 文本内容*/,可以生成程序说明书;java特有注释; 二、java关键字和标识符 关键字:被Java语言赋予了特定含义的字符!这些词不能用于其他地方,改变其含义。 关键词分类: 标识符:为了增强阅读性的自定义名称,例如:类名、方法名、变量名等等 标识符的书写规则: 1、由字母、数字、下划线、$组成,不能以数字开头,注意:此处的字母还可以是中文,日文等 2、标识符大小写敏感 3、标识符不得使用java中的关键字和保留字 4、别用Java API里面的类名作为自己的类名 注意:一般开发时,会用 有意义的英文单词作为标识符 。 规范: (1) 类名 所有单词首母大小 YourGirlFriend (2) 函数名,变量名

C语言-memset()

眉间皱痕 提交于 2019-12-02 09:43:06
1. memset()函数原型是extern void *memset(void *buffer, int c, int count) buffer:为指针或是数组, c:是赋给buffer的值, count:是buffer的长度. 这个函数在socket中多用于清空数组.如:原型是memset(buffer, 0, sizeof(buffer)) Memset 用来对一段内存空间全部设置为某个字符,一般用在对定义的字符串进行初始化为‘ ’或‘/0’; 例:char a[100];memset(a, ‘/0’, sizeof(a)); memset可以方便的清空一个结构类型的变量或数组。 如: struct sample_struct { char csName[16]; int iSeq; int iType; }; 对于变量: struct sample_strcut stTest; 一般情况下,清空stTest的方法: stTest.csName[0]=’/0’; stTest.iSeq=0; stTest.iType=0; 用memset就非常方便: memset(&stTest,0,sizeof(struct sample_struct)); 如果是数组: struct sample_struct TEST[10]; 则 memset(TEST,0,sizeof

Cocos2D-X弹出对话框的实现与封装

有些话、适合烂在心里 提交于 2019-12-02 08:59:15
在用Cocos2DX引擎开发游戏的过程中,我们经常需要弹出一个对话框或者提示框,通知玩家一些必要的信息。这时候我们就需要考虑怎样设计和封装一个这样的弹出对话框。首先,这样的弹出框一般都是“模态窗口”,即在没有对当前弹出的对话框进行确认的时候,不能继续往下操作。 一个对话框一般包含几个部分: 背景图、两个按钮(个数可定制)、标题、文字内容 。我们需要使对话框为模态窗口,并设置弹出效果。下面来说说创建弹出对话框的要点: 1、弹出层的触摸优先级,操作与显示相一致 因为弹出对话框是“模态窗口”,所以我们需要设置触摸优先级来保证对话框是模态的。 在这里我们以CCMenu作为对话框按钮的操作实现,我们知道CCMenu 的默认触摸级别是-128,那么我们的【弹出层】触摸级别该设置为多少? 在我们设定触摸级别时,请记住一句话,操作与显示相一致。此话何意?现在设想这样一种情况,我们为了屏蔽弹出层以外所有的层的操作,而将弹出层级别置为 -129 ,这样便保证了它是模态的了(一般而言,除了 CCMenu 的级别,用户自定义也无需这么大),但是如果当前弹出层上方还有其它的层(也可以是弹出层的父节点上方有其它层,如多层的 UI 设计),并且其上也有 CCMenu 按钮,那么就出现了显示在 弹出层上放层中的 CCMenu 按钮不能点击,这不科学!实际,在弹出层的 CCMenu 也不能点击

Linux 进程IO杂项

佐手、 提交于 2019-12-02 08:49:55
Linux 进程IO杂项 本文结合一个 pwn 例题,在分析例题的过程中穿插介绍相关知识。 例题来源: PWNABLE.KR 网站, Toddler's Bottle 小节,习题 input 。 例题内容: Mom? How can I pass my input to a computer program? ssh input2@pwnable.kr -p 2222 (pw: guest). 连接服务器 对于这类提供了 SSH 连接地址的题,我们通常要连接到服务器并在服务器上按提示信息完成 pwn 。登录成功后,看到如下信息: ____ __ __ ____ ____ ____ _ ___ __ _ ____ | \| |__| || \ / || \ | | / _] | |/ ]| \ | o ) | | || _ || o || o )| | / [_ | ' / | D ) | _/| | | || | || || || |___ | _] | \ | / | | | ` ' || | || _ || O || || [_ __ | \| \ | | \ / | | || | || || || || || . || . \ |__| \_/\_/ |__|__||__|__||_____||_____||_____||__||__|\_||__|\_| - Site

python实现敏感词过滤的几种方法

China☆狼群 提交于 2019-12-02 06:45:32
1.replace过滤 最简单也是最直接的就是直接循环敏感词,然后使用replace过滤关键词,文章和敏感词少的时候还可以,多的时候效率就真的很一般了。 2.使用正则过滤 有两个技术要点, 1.使用Python正则表达式的re的sub()函数; 2.在正则表达式语法中,竖线“|”表示二选一或多选一。 代码参考 import re def check_filter(keywords, text): return re.sub("|".join(keywords), "***", text) keywords = ("暴力", "色情", "其他关键字") text = "这句话里不包含暴力,也不包含色情,但是可能包含其他关键字" print(check_filter(keywords, text)) 返回结果 这句话里不包含***,也不包含***,但是可能包含*** 3.DFA过滤敏感词算法 在网上查了下敏感词过滤方案,找到了一种名为DFA的算法,即Deterministic Finite Automaton算法,翻译成中文就是确定有穷自动机算法。它的基本思想是基于状态转移来检索敏感词,只需要扫描一次待检测文本,就能对所有敏感词进行检测,所以效率比方案一高不少。 假设我们有以下5个敏感词需要检测:傻逼、傻子、傻大个、坏蛋、坏人。那么我们可以先把敏感词中有相同前缀的词组合成一个树形结构