ps

栈的应用

强颜欢笑 提交于 2020-01-23 01:01:48
1、算术表达式 求值 #include<stdio.h> #include<stdlib.h> #include<ctype.h> typedef struct Node { int data; struct Node * pNext; }NODE,* PNODE; typedef struct Stack { PNODE pTop; PNODE pBottom; }STACK,*PSTACK; //初始化 void initStack(PSTACK); //判断栈是否为空 bool isEmpty(PSTACK); //压栈 void push(PSTACK,int); //出栈 bool pop(PSTACK,int* pVal); //返回栈顶元素 int top(PSTACK pS); void initStack(PSTACK pS) { pS->pTop=(PNODE)malloc(sizeof(NODE)); if (NULL == pS->pTop) { printf("分配内存失败,程序终止!\n"); exit(-1); } else { pS->pBottom = pS->pTop; pS->pTop->pNext = NULL; } } bool isEmpty(PSTACK pS) { if (pS->pTop == pS->pBottom) return

linux(CentOS版本)学习笔记3

不打扰是莪最后的温柔 提交于 2020-01-22 15:09:30
1.正则表达式和数据操作 a.grep命令:在文件中查找关键字,并显示关键字所在的行。 基本用法:grep text file text代表要搜索的文本,file代表供搜索的文件。 -i参数:默认的情况下,grep命令时严格区分大小写的,比如我搜索的文本是text,那么就不会搜出Text,tExt,TEXT等等文本。此时给grep加上-i参数,使得grep可以忽略大小写。 -n参数:显示搜索到的文本所在的行号。 -v参数:只显示搜索的文本不在的那些行(与不加-v参数搜索结果正好相反)。 -r参数:grep -r “Hello World” folder/ 这句命令的意思就是在folder目录的所有子目录和子文件中查找Hello World这个文本。 grep的高级用法:配合正则表达式 正则表达式使用单个字符串来描述,匹配一些列符合某个句法规则的字符串。 -E参数:使用正则表达式 例如:grep -E [Pp]ath /etc/profile,[]的作用,是将[]中的字符任取其一,既可以是Path,又可以是path。 grep -E [a-zA-Z] /etc/profile 就是包含在a至z之间的任意字母或者A-Z之间的任意字母的行。 b.sort命令:为文件排序,后接文件名 仅使用sort排序是不会改变文件内容的,仅仅会把排序后的结果显示到终端上。 -o参数

Android 绘制中国地图

一个人想着一个人 提交于 2020-01-21 23:54:57
最近的版本有这样一个需求: 有 3 个要素: 中国地图 高亮省区 中心显示数字 面对这样一个需求,该如何实现呢? 高德地图 因为项目是基于高德地图来做的,所以很自然而然的想到了高德。但是当查阅高德地图相关 Api 后,发现并没有能够实现这样需求的方法,所以只能另寻他法了。 图片叠加 让设计师出图,实现第一个要素开发成本极低。至于 高亮省区 ,也是继续让设计师出图,与全国地图分辨率保持一致,为每个省区设计一张高亮的图,其他地方透明,这样算下来设计师得出 35 张图。若不考虑性能,将图片无脑叠加倒也可以实现。但是作为 Android 开发都知道,这样的一张不算小的图片加载到手机里,占用的内存怕是个庞然大物,更别谈极端情况下要叠加 35 张这样的大图了。 优化下叠加方案:将高亮的省区做成小图,一个包含了省区所有区域的矩形,省区内部高亮,其他区域透明,这样图变小了,但是就得计算小图相对于全国大图的相对位置,对于每个小图都得计算一个比例。同时,绘制高亮省区时可以每次都只取2张图进行叠加,叠加完后释放一张图再加载另一张图,而不用一次性全部加载在内存中。这种方案想想是 ok 的,但是感觉依然还是很麻烦。于是继续探索~ SVG Path 其实网上有很多文章也是有类似的需求,简单搜一下就发现了 SVG 这个解决方案了。看了一眼,便决定就是它了! SVG:可缩放矢量图形(英语:Scalable

PS切图时常用操作快捷键

我只是一个虾纸丫 提交于 2020-01-21 12:01:42
1. 用CTRL + ++ 放大图像,ctrl + --缩小图像 将图像放大至每像素(最大) 2.用标尺将要切的图形框住,如果面板上没有标尺,请在“视图”菜单选中标尺即可 3.用工具栏里的“矩形选框工具” 将要切的图形按标尺划分的框全部选中 4.用ctrl + shift + c 合并复制 选中的图形 5.用ctrl +n新建文件,该文件尺寸已按刚被复制的图形尺寸设定,注意选择图像为透明状态 6.在新建文件内按ctrl + v 粘帖到新文件上 7.用ctrl + shift + alt + s 或者在“文件”菜单选择“存储为web所有格式” 8.最后选择需要的图片格式保存即可 另外如果需要切的是一个图层 在选中环节,按住ctrl ,点击图层面板中该图层, 即出现选中边框 然后按ctrl + shift + c 复制,其他步骤相同 来源: https://www.cnblogs.com/jacktu/archive/2008/11/13/1332513.html

linux进程管理之进程查看

旧时模样 提交于 2020-01-21 07:26:36
查看进程 process ==================================================================================== 了解如进程的: • PID,PPID • 当前的进程状态 • 内存的分配情况 • CPU和已花费的实际时间 • 用户UID,它决定进程的特权 w 查看当前系统信息 [root@bogon cron]# w 14:48:39 up 2:46, 1 user, load average: 0.00, 0.01, 0.00 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT root pts/1 192.168.203.1 12:27 0.00s 0.17s 0.02s w w显示信息的含义: JCPU: 以终端代号来区分,该终端所有相关的进程的进程执行时,所消耗的 CPU时间会显示在这里 PCPU : cpu 执行程序消耗的时间 WHAT: 用户下在执行的操作 load average : 分别显示系统在过去 1、 5、 15分钟内的平均负载程度。 FROM : 显示用户从何处登录系统,“: 0”的显示代表该用户时人 X Windows 下,打开文本模式窗口登 录的 IDLE: 用户闲置的时间,这是一个计时器,一旦用户执行任何操作,该计时器便会被重置

Linux 性能监控

為{幸葍}努か 提交于 2020-01-21 03:41:09
top 命令会展示进程的实际活动。默认情况下,它会列出系统上所有cpu密集型任务,并且每5秒钟刷新一次列表。你可以对PID(数值),生存时间(最新的排最前面),时间(累计时间)以及常驻内存使用率和时间(进程启动开始占用cpu的时间)进行排序。 输出中的各列: PID 进程号 USER 进程所有者的名字。 PRI 进程优先级 NI nice级别 SIZE 进程使用的内存(代码、数据和栈),kb单位 RSS 物理RAM使用量,kb单位 SHARE 和其它进程共享的内存,kb单位 STAT 进程状态:S=睡眠,R=运行,T=停止或跟踪,D=不可中断的睡眠,Z=僵尸。请参考前文中的”进程状态“一节。 %CPU CPU使用量。 %MEM 物理内存用量 TIME 进程使用的总CPU时间(从启动开始算) COMMAND 进程的命令行启动命令(包括参数) vmstat vmstat显示关于进程,内存,页,块I/O,traps和CPU的信息。vmstat既可以展示平均值,也可以是实时数据。通过提供采样频率和采样时间就可以开启vmstat的采样模式。 输出中的各列: 进程 ---->r:等待执行时间的进程数 b:在不可中断睡眠中的进程数 内存 ----> swpd:已使用的虚拟内存量 free:空闲内存量 buff:作为缓冲的内存 cache:作缓存的内存 Swap ----> si

Linux-shell篇之ps命令

冷暖自知 提交于 2020-01-20 20:11:11
ps:Process State SysV风格:-(需要加横杠) BSD风格:(不需要加横杠) a:所有与终端有关的进程 u: x:所有与终端无关的进程 例子:ps aux | head 进程的分类: 跟终端相关的进程 跟终端无关的进程 进程状态: D:不可中断的睡眠 R:运行或就绪 S:可中断的睡眠 T:停止 Z:僵死 <:高优先级进程 N:低优先级进程 +:前台进程组中的进程 l:多线程进程 s:会话进程首进程 -elf -ef -eF pstree:可查看核心进程init,以及其他进程分支情况 pgrep:只显示进程号 例子:pgrep bash pidof:根据程序名称,查找其相关进程的ID号 例子:pidof vsftpd top: M键:根据驻留内存大小进行排序 P键:根据CPU使用百分比进行排序 T键:根据累计时间进行排序 l键:是否显示平均负载和启动时间 t键:是否显示进行和CPU状态相关信息 m键:是否显示内存相关信息 c键:是否显示完整的命令行信息 q键:退出top k键:终止某个进程 top: -d:指定延迟时长,单位是秒,例子:top -d 1 -b:批模式(翻屏),例子:top -d 1 -b -n #:在批模式下,共显示多少批(翻#屏),例子:top -d 1 -b -n 3 进程间通信(IPC:Inter Process Communication)

C#通过反射给对象赋值

蓝咒 提交于 2020-01-20 14:47:52
class Program { static void Main(string[] args) { UserSearchRequest model = new UserSearchRequest() { Name = "'1'=0", Age = 10 }; Type type = model.GetType(); //var ps = type.GetProperties(); var ps = type.GetProperties().Where(u=>u.PropertyType.FullName =="System.String").ToList(); foreach (var p in ps) { Console.WriteLine("PropertyName:{0},Value:{1}",p.Name,p.GetValue(model,null).ToString()); p.SetValue(model, "1001",null); Console.WriteLine("PropertyName:{0},Value:{1}", p.Name, p.GetValue(model, null).ToString()); } Console.ReadLine(); } } public class UserSearchRequest { public string Name

第十一章 ZYNQ-MIZ701 PS读写PL端BRAM

三世轮回 提交于 2020-01-20 03:02:26
本篇文章目的是使用Block Memory进行PS和PL的数据交互或者数据共享,通过zynq PS端的Master GP0端口向BRAM写数据,然后再通过PS端的Mater GP1把数据读出来,将结果打印输出到串口终端显示。 涉及到AXI BRAM Controller 和 Block Memery Generator等IP的使用。 本系列文章尽可能的让每一个实验都相对独立,过程尽可能保证完整性,保证实验的可重现性。 但是用到的模块或者IP的具体作用和用法不保证都重复详细的介绍。 本文所使用的开发板是Miz702 PC 开发环境版本:Vivado 2015.4 Xilinx SDK 2015.4 1 1 .0本章难度系数★★☆☆☆☆☆ 1 1 .1 搭建硬件工程 Step1:新建一个名为为Miz701_sys的工程 Step2:选择RTL Project 勾选Do not specify source at this time Step3:选择xc7z010clg400-1为开发器件。 Step4:单击Finish 1 1 .2使用IP Integrator创建硬件系统 Step1:单击Create Block Design Step2:输入system Step3:单击下图中 添加IP按钮 Step4:搜素单词z选择ZYNQ7 Processing System,然后双击

记一次僵尸进程的处理

∥☆過路亽.° 提交于 2020-01-19 16:07:41
(1)监控报警可用内存不足: (2)登录服务查看 缓存占用的内存并不多 (3)top查看一下系统整体状态 发现10个僵尸进程 linux 下 取进程占用 cpu 最高的前10个进程 ps aux | head -1 ; ps aux | grep -v PID | sort -rn -k +3 | head linux 下 取进程占用 内存mem 最高的前10个进程 ps aux | head -1 ; ps aux | grep -v PID | sort -rn -k +4 | head (4)找出状态位z的进程 shell>ps -aux | (5)根据僵尸进程的描述筛选 找到了所有的僵尸进程,如果要杀死僵尸进程,最好找到父进程,然后干掉,直接杀僵尸进程可能杀不掉 (6)找到僵尸进程的父进程 干掉 来源: 51CTO 作者: TangYGao 链接: https://blog.51cto.com/7603402/2467833