自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

theArcticOcean

博观而约取,厚积而薄发

  • 博客(623)
  • 收藏
  • 关注

原创 algorithm 题集七 (17.01.30)

51nod 1449 砝码问题http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1449现在有好多种砝码,他们的重量是 w0,w1,w2,… 每种各一个。问用这些砝码能不能表示一个重量为m的东西。 样例解释:可以将重物和3放到一个托盘中,9和1放到另外一个托盘中。Input 单组测试数据。 第一行有两个整数w,m (2

2017-01-30 12:59:14 595

原创 杂记 (7) —— shell, gdb, vim, gcc, mingw32

diff的结果显示解释a - addc - changed - delete 如: $ diff file1 file21c1< 时间:0.29000000---> 时间:0.42000000代表第一行不同1,2d0< 时间:0.29000000< after sorted : 代表第一个文件比第二个文件多第一行时间:0.29000000和第二行after sorted :。0a1

2017-01-20 10:10:05 957

原创 SDL简单动画

动画是利用人类的视觉特点被创造出来的艺术品。图像在不同的时间和位置出现可以产生一定的视觉特效。SDL程序可以制作动画。想要制作出动画的效果,就需要把握好单位时间内出现的图片数量这一个因素。一般来说,一秒24帧可以得到流畅的动画场景。那么两张图像的时间间隔保持约为41666 microseconds. 下面例子中的GIF图片是GifCam.exe截屏制成。制作一个简单动画: 红色的圆圈不断扩大

2017-01-16 18:24:21 2407 4

原创 linux图形编程之SDL

SDL startSDL是编写跨平台游戏和多媒体应用的支持库,包含了对图形、声音、游戏杆、线程等支持,内容丰富、应用广泛。 ubuntu15.04上安装SDL: Source Code在 http://www.libsdl.org/download-1.2.php上,下载SDL-1.2.15.tar.gz。解压tar -zxvf SDL-1.2.15.tar.gz,在加压后的文件夹SDL-1.2

2017-01-14 16:22:00 5674

原创 杂记 (7) —— windows + code

在有道云笔记markdown中插入图片的方法:将图片放在本地,右击属性,安全,对象名称。将其复制到()中即可。![image](C:\Users\win7\Desktop\link.PNG)注意,路径中不要有空格。static declaration of ‘***’ follows non-static declaration我们需要在调用静态函数之前有相应的声明 比如: 下面代码main()

2017-01-10 11:10:51 531

原创 进程间的通信

信号信号是软件中断的模拟,可以在人格时候发给进程,如果进程处于未执行状态,该信号就由内核保存,直到进程恢复执行再传递给它。 SIGKILL和SEGSTOP是应用程序无法捕捉和忽略的。 几个常用的快捷键和信号: ctrl + C —— SIGINT 中断信号 ctrl + \ —— SIGQUIT 退出信号 ctrl + Z —— SIGTSTP 进程挂起 functions about

2017-01-09 17:16:27 432

原创 汇编 —— AT&T小练习

堆栈是向下拓展的一个很简单的例子,将两个32字节的数字压入堆栈,查看esp堆栈寄存器前后的变化。.section .text.global mainmain: nop pushl $1 pushl $2调试查看:[edemon@CentOS workspace]$ gcc -gward -o pushpop pushpop.s [edemon@CentOS worksp

2017-01-09 16:57:21 713

原创 汇编 —— 尾数、负数加法、标准浮点数

大小尾数小尾数:低位字节存储在低内存位置或寄存器的低位地址,高位字节存储在高内存位置或寄存器的高位地址。 大尾数:和小尾数的存储顺序是相反的,低位字节存储在高位地址。intel采用的是小尾数存储格式: 检测:.section .datavalue: .int 0x127.section .text.global mainmain: nop movl $0x127,

2016-12-27 19:09:53 2996

原创 MySQL 触发器、事务、正则查询

触发器触发器是由MySQL基本命令事件触发某种特定操作。 创建触发器CREATE [DEFINER = { user | CURRENT_USER }] TRIGGER trigger_name trigger_time trigger_event ON tbl_name FOR EACH ROW trigger_bodytrigger_time: { BE

2016-12-26 18:18:08 735

原创 unix环境编程练习 (2)

系统调用系统调用是由操作系统核心提供,运行于核心态;普通函数调用由库函数或者用户自定义,处于用户态。那些标准函数都是由系统调用完成的。 查看系统调用的接口:[edemon@CentOS ~]$ man 2 syscalls进程不能访问内核,系统调用则是接口,由他们告诉内核进程的请求是什么。 错误码errno: 1–34存在于: /usr/include/asm-generic/errno-bas

2016-12-21 14:30:05 737

原创 汇编 —— 起步

作为非计算机专业的孩子,想要了解每一条C语句到底发生了什么,学习汇编也就变得水到渠成了。经过好几天的折腾,总算搞懂了一点点,一开始看王爽老师的《汇编语言 第三版》,讲得确实不错,但是8086cpu的汇编环境确实有点老,装了一个DOSBos,debug.exe倒是能用了,但是edit,masm啥的全都没有啊,更重要的是将来的工作都是在linux上进行,故而学到第四章就放弃了,转而学习linux环境的汇

2016-12-18 17:49:12 774

原创 MySQL 运算符、查询优化

MySQL运算符算术运算符mysql提供的运算符有+, -, *, /(DIV), %(MOD)mysql> select * from test;+----+------+-------+| id | name | price |+----+------+-------+| 1 | tag1 | 12 || 2 | tag2 | 13 || 3 | tag3 |

2016-12-11 18:39:21 2560

原创 ANSI C (6) —— 指针、断言、信号、跳转

指针指针的声明下面的三条语句是等价的,但是我们常常使用的是第一种形式int *p,同时我们注意,他们是在初始化p而不是*p。#include <stdio.h>#include <stdlib.h>int main(){ int a=12; int *p1=&a; int* p2=&a; int * p3=&a; printf("p1: %p %d\

2016-12-10 20:29:37 1155

原创 qt (1) —— 入门

环境: Qt Creator 2.8.1 Qt 5.1.1 gcc 4.9.1 我的第一份qt程序hello wolrd 控制台应用程序#include <QCoreApplication>#include <QDebug>int main(int argc, char *argv[]){ QCoreApplication a(argc, argv); qDebug(

2016-12-09 21:27:26 653

原创 ANSI C (5) —— 结构、联合、位字段、枚举

结构结构体在声明的时候并没有分配任何的内存资源,只有定义了结构体变量才会产生相应的内存分配。 typedef和#define的区别#define仅仅是做简单的替换,而typedef是给某种数据类型创建一个替代名。 看这样的例子:#include <stdio.h>#define charP char*int main(){ charP s1="I love you.", s2="he

2016-12-09 11:34:44 881

原创 ANSI C (4) —— 存储类别和类型限定

register寄存器(register)变量的被访问速率远远高于内存的被访问速率,所以编译优化常常这样做:将循环控制变量和使用频繁的变量安排在CPU的寄存器中。通常,仅仅在块内声明寄存器变量。取地址符&不能用于寄存器变量。 比如下面的代码将会发生错误: error: address of register variable ‘i’ requested register int i;

2016-12-06 18:26:35 832

原创 C++ primer (3) —— 多态

类类的访问修饰符 只有类和友元函数可以访问私有成员 保护成员比私有成员的开放性要更大一点,可以被子类访问 友元函数定义在类的外部,可以访问类的私有成员内联函数 如果一个函数是内联的,那么在编译时,编译器会把该函数的代码副本放置在每个调用该函数的地方。 在类定义中的定义的函数都是内联函数。this指针 this指针是成员函数的隐含参数,友元不是类的成员函数,所以友元函数没有this指针。类

2016-12-05 14:48:23 666

原创 杂记 (6) —— vim, gcc, gdb, man

vi vistual block缩进选中vistual block, shift + > or <gdb无法调试最新gcc编译的程序$ gcc -g -o fcopy fcopy.c$ gdb fcopyGNU gdb (GDB) Red Hat Enterprise Linux (7.2-90.el6)Copyright (C) 2010 Free Software Foundation,

2016-12-03 11:06:01 782

原创 shell编程 (3) —— 调试

shell调试技巧shell脚本虽然不像高级语言那样有专门的调试工具和调试机制,但是前辈们仍然想出了一些办法来进行shell脚本的错误检测。trapshell脚本在执行的时候会产生三伪信号(不是操作系统发出的信号)。我们可以使用trap捕获信号然后进行shell的调试。 shell伪信号的产生: 信号 产生条件 EXIT 正常退出 ERR 返回非零状态码 DEBUG

2016-11-27 14:24:13 796

原创 linux C —— 文件操作函数

chmodint chmod(const char *path, mode_t mode) 将文件read的文件权限变成所有者有读写权限,其他用户只有读的权限。这和shell指令中的chmod有相同的功效。#include <stdio.h>#include <stdlib.h>#include <sys/stat.h> /* for chmod */#include <sys/types.

2016-11-22 22:07:57 4466

原创 杂记 (5) —— 重装系统后

1. xshell+xmanager本想安装win7+ubuntu的双系统,但是安装后开机系统引导出现问题,只能看到一个系统。听说还需要下载修复软件处理它,我已经被引导问题搞怕了,上一个硬盘就莫名其妙的坏了,所以这次就安分的把linux放在虚拟机中吧。但是在虚拟机中始终有一些舒服,于是使用xshell+xmanager的组合方式在主机上进行linux的操作。 xshell使用ssh登陆就不多说了,

2016-11-21 19:09:46 772 3

原创 《科比传》留下深刻印象的文字

篮球是一项集体运动,是五个人的运动,一个人再强,身体再好,球技再高,没有队友的配合,也是枉然。一个人的卓越远远无法抵消其他四个人的平庸。“他(科比)每天都在和联盟里最顶尖的球员较量,他努力的防守他们,并希望他们也能尽全力来阻挡自己。在这一点上,我们两个人非常相似。”乔丹说道。“如果让我挑出联盟目前最出色的球员,我显然会选择科比。”压力、挑战,这一切消极的东西都是我能够取得成

2016-11-13 21:34:00 1484

原创 algorithm 题集六 (16.11.12)

nyist 8 一种排序 – operatorhttp://acm.nyist.net/JudgeOnline/problem.php?pid=8现在有很多长方形,每一个长方形都有一个编号,这个编号可以重复;还知道这个长方形的宽和长,编号、长、宽都是整数;现在要求按照一下方式排序(默认排序规则都是从小到大);1.按照编号从小到大排序2.对于编号相等的长方形,按照长方形的长排序;3.如果编号和长

2016-11-12 17:15:59 795

原创 ANSI C (3) —— 常用系统函数

字符测试函数 function effect isalnum 检测字符是否为英文或数字 isalpha 检测字符是否为英文 isascii 检测字符是否为ASCII码字符 iscntrl 检测字符是否为ASCII码控制字符 isdigit 检测字符是否为阿拉伯数字 islower 检测字符是否为小写字符 isupper 检测字符是否为大写

2016-11-05 07:55:04 454

原创 makefile学习 (2) —— autotools生成makefile

autotools生成makefile利用autotools系列工具可以快速生成makefile,我们输入目标文件,依赖文件,文件目录等信息即可。 我们需要保证有这些工具:aclocal, autoscan, autoconf, autoconf, autoheader, automake. 在安装的时候仅仅需要指令 yum install automake 或 sudo apt-get ins

2016-10-30 19:43:47 618

原创 shell编程 (2) —— 基础

shell 语法for循环#!/bin/bashfor language in c c++ java python shell_script; do echo "my ${language} skill is good." #变量左右加上{}done变量变量的二次赋值#!/bin/bashname="Elena" # = 左右不能有空格echo "hello, my nam

2016-10-29 15:32:39 928

原创 杂记 (4) —— linux and coding

记录linux文本界面下的计算器,bc. 可进行的操作:+ 加法 - 減法 ###乘法 / 除法 ^ 指数 % 余数 启动: bc 离开: quitawk编程,非法引用数组$ ./split.shawk: line 5: illegal reference to array elements$ cat split.sh #!/bin/bashawk 'BEGIN{

2016-10-22 21:31:27 850

原创 makefile学习 (1)

学习自《跟我一起写Makefile》,《linux网络编程》 编译和链接Uinx下编译产生的.o文件是中间代码文件,object file. 只要源文件代码正确,那么我们就可以编译出相应的object file。到了链接阶段(链接函数和全局变量),链接器寻找object file,如果中间代码文件太多,则可以给其打包,生成Archive File,即.a文件,链接后生成可执行文件。 编译器只检查

2016-10-06 17:52:50 1000

原创 简单的多线程数据传输

说明为创建一份小型的工程代码,自己想出一个简单的数据传输任务。 主进程创建四个线程,st1,st2,st3,rt,让前三个线程向最后一个线程灌包,最后一个线程接收数据包。 目的IP: 10.21.100.152 目的端口:9001 各个进程被创建后立即进行相应的工作,灌包或者收包。rt接收到数据包后打印出相应的信息。makefile工程文件的编译会接触到makefile,下面是总结的常用的m

2016-10-03 22:47:12 3054

原创 用C学习内存

内存分段32位操作系统,地址总线是32位,寻址空间就是32位,内存编号只能编到32个二进制位,故其只能使用4G内存。空间: 232byte=210×210×210×22byte=1024×1024×1024×4byte=1024×1024×4K=1024×4M=4G2^{32} byte= 2^{10} \times 2^{10} \times 2^{10} \times 2^2 byte

2016-10-02 23:39:38 4266

原创 sed初步

sed相关知识sed是一个非交互式的文本编辑器,刻意地文本文件和标准输入进行编辑。sed可以一次性处理所有的编辑任务。 sed仅仅编辑源文件的副本,如果要保存编辑的结果则可以输出重定向至另一个文件。 三种使用sed的方法: sed [option] 'sed command' inputfilesed [option] -f sed_script inputfile./sed_script

2016-10-01 15:19:35 1041

原创 awk初步

认识awkAwk是一种小巧的编程语言及命令行工具。它非常适合服务器上的日志处理,主要是因为Awk可以对文件进行操作。它同样使你能够处理数据并转换数 据。 gawk是最新的版本,使用它可以做到数据查找,抽取文本中的数据,创建管道流。 awk有一个主输入循环,次循环反复执行,直到终止条件被触发。我们写好的代码被嵌入到朱输入循环框架中执行。 BEGIN在主输入循环之前执行(未读取输入文件行之前),

2016-09-25 20:39:20 807

原创 udp socket: 简单的数据包与视频流传输

简单的包传输客户端向服务端发送数据包,服务端打印出来。 我们来传送一首诗吧,柳永的《雨霖铃》 服务端:#include <stdio.h>#include <sys/socket.h>#include <sys/types.h>#include <string.h>#include <netinet/in.h>#include <unistd.h>#include <stdlib.h

2016-09-25 10:35:06 22150 17

原创 进程通信之读写锁

读写锁读写锁的分配规则 1. 没有线程持有读写锁进行写,任意数量的线程可以持有该读写锁用于读 2. 只有没有线程持有给定的读写锁用于读或者写的时候,才能分配读写锁用于写。 如果修改数据频繁,那么可以考虑用读写锁替代互斥锁。 获取与释放如果对应的读写锁已由某个写入者持有,那么阻塞pthread_rwlock_rdlock获取读出锁如果对应的读写锁已由另一个写入者持有,那就阻塞pthread

2016-09-21 22:48:01 988

原创 杂记 (3) —— C and linux

问题遇到一个奇怪的现象. 在移动硬盘中自己编译c程序得到的可执行文件没有可执行属性,使用root +x也不能改变他的属性. 当我把它放入自己电脑中的硬盘后,就可以chmod +x了. 自己猜想这可能和文件系统相关.fdisk -lDevice Boot Start End Sectors Size Id Type/dev/sda1 *

2016-09-21 21:46:05 607

原创 unix环境编程练习 (1)

函数练习1.对mmap映射地址操作mmap(), fstat()mmap(): 将文件和设备空间映射到内存中,内存操作比磁盘更快。映射成功返回内存地址,是被返回-1.之后可以直接对映射的地址进行操作。 fstat()获取文件的状态。#include <stdio.h>#include <unistd.h>#include <sys/mman.h>#include <sys/types.h>

2016-09-17 15:30:34 1106

原创 linux C ----- udp, tcp, unix socket通信简单例子

udp socket相关知识UDP的程序设计可以分成客户端和服务器端两个部分。两者的主要差别在于对地址的绑定函数,客户端可以不用进行地质和端口的绑定。(客户端是随机拿一个大于1024的端口去连接的) 和TCP相比,UDP缺少connect(),listen(),accept()函数 【因为tcp面向连接,而UDP是无连接的。】 服务端的UDP编程: 动作 函数 创建 socket(

2016-09-11 09:47:01 7716

原创 杂记 (2) —— linux and C

问题自动获取IP的网卡设置怎嘛查看IPv4? 将/etc/sysconfig/network-scripts/ifcfg-eth0中的BOOTPROTO的值更改成dhcp. 然后ifdown 网卡名, ifup 网卡名.linux某一项service没有找到? 将可执行文件的路径加入PATH中。相关文件(ubuntu): /etc/environment能Ping通linux,但是不能ss

2016-09-08 23:11:06 1644

原创 shell编程 (1) —— 基础

关于bashbash的内部命令:shell在启动时就调入内存。 bash的外部命令:使用时才从硬盘中读入内存。命令通配符: ? : 匹配任意一个字符 [] : 匹配括号中的任意单字符 * : 匹配任何的字符或者字符串,包括空字符串shell程序shell程序本质是普通文本文件,加上可执行权限后可以让shell执行文本中的程序。#! shell compiler# filename

2016-09-03 11:03:37 631

原创 杂记 (1) —— Network + Text editing

遇到的问题在ssh上登录服务器遇到乱码? $ export LANG=”zh_CN.GBK”改变字符成GBK还有乱码怎么办?$ export LANG="zh_CN.GBK"$ gcc -o pipe pipe.c pipe.c: ÔÚº¯Êý¡®main¡¯ÖÐ:pipe.c:20:21: ´íÎ󣺡®buff¡¯Î´ÉùÃ÷(Ôڴ˺¯ÊýÄÚµÚÒ»´ÎʹÓÃ) re

2016-09-03 10:30:23 560

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除