- connect IP [PORT]
- 连接IP
- binary
- 二进制模式传输
- ascii
- 文件传输模式,默认采用文本模式
- verbose
- 显示详细处理信息
- status
- 显示当前状态信息
- trace
- 显示调试信息
- rexmt retransmission-timeout
- 设置重传输的超时时间
- timeout total-transmission-timeout
- 设置包传输超时时间
- get FNAME
- 获取文件
- put FNAME
- 发送文件
- help/?
- 帮助信息
- quit/q
- 退出
- 给定一个字符串,确定其中是否每个元素都只出现了一次。
- 编写一个程序,删除字符串中所有的重复出现的字符,只需删除重复部分。
- 判断两个字符串是否为变位词,所谓变位是指可以只通过调整字符位置让两个字符相同。
- 判断一个字符串是否是另一个字符串的广义子串。即是否可以通过对另一个字符串删除字符得到。
- 给定一个函数is_substring(s1, s2)用于判断s1是否为s2的子字符串,仅使用该函数如何确定两个字符串是否可以通过循环移位使其相同。
- 给定一个整数数组,每个元素独一无二,请计算能够排列成连续数字的子数组的最大长度。
- 给定一个 \(N \times N\) 矩阵,将其顺时针旋转90度。
- 给定一个 \(N \times N\) 矩阵,如果一个元素为0,将其所在的行和列都置0。
Linux内核开发环境 2015年06月01日 kernel linux kernel
Linux基于UNIX开发,UNIX在1969年由Dennis Ritchie和Ken Thompson两位大师开发。 Linux最早由Linus Torvalds于1991年开发。整个Linux系统由系统调用将用户空间和内核空间联系起来,用户通过系统调用来进入到内核态,以完成对设备的访问和控制。因此从功能上讲,内核主要是为用户提供接口,对计算机硬件资源进行管理。
Emacs Introduction 2015年05月30日 editor 笔记 emacs
sudo apt-get build-dep emacs24
sudo apt-get install ttf-ubuntu-font-family ttf-wqy-microhei
wget http://mirrors.ustc.edu.cn/gnu/emacs/emacs-24.5.tar.gz
tar -xzvf emacs-24.5.tar.gz
cd emacs-24.5
./autogen.sh
./configure
make && sudo make install
Emacs Orgmode 2015年05月29日 editor 笔记 emacs
Org mode是Emacs下写文档的一个主模式,非常适用于记笔记、写TODO、制定项目计划等。自从接触Orgmode之后,我便没有离开过,因为她给我带来了太多的便利。
从观感上看,她是一个非常紧凑的标记语言,相比于RST看起来不是那么稀疏。即便是不导出为文档或者页面,也能很好的阅读和跳转。
在书写上,她提供了一组很自然的快捷键,很多文字对象具有相似的结构,在快捷键上也很好的保持一致,如章节和列表的很多快捷键是相同的,功能则完全能够类比。
作为程序员,文学编程让我十分着迷。在文档里引用一段代码,一个简单的按键就能计算结果,这是多么优美的设计。比如可以直接在文档中写一段Python,验证一个小的算法,也可以写一段plantuml,直接接绘制流程图,还可以用表格直接绘制gnuplot图形,其他的很多语言如C语言、R语言等等都是能够直接运行的,你根本不需要去写Makefile,也不需要输入冗长的编译命令,而只需要一个简单的按键。
另外不得不提的就是其优秀的时间管理能力,很大的提高了我的工作效率。
Linux嵌入式平台工具 2015年05月23日 linux linux tftp serial
Linux下tftp工具用如下方式启动。
tftp [OPTONS] [IP [PORT]]
进入会话之后基本命令如下。
GDB Introduction 2015年05月22日 tools gdb
GCC将C代码编译成可执行程序,会执行预处理、编译、汇编和链接四个步骤。预处理包含头文件,替换宏定义。编译是由C代码生成汇编程序。汇编则是将汇编程序转换为目标二进制文件。链接是把目标文件和库链接在一起,生成一个可以运行的程序。
Linux网络工具 2015年05月21日 network linux network
wpa_supplicant是一个发送WPA请求的工具,WPA是Wi-Fi Protected Access的简称。用于在Linux、MAC、Windows上支持WPA和WPA2(IEEE 802.11i / RSN)。不论是在桌面应用还是嵌入式设备都是一个实用的工具。该工具设计为一个daemon程序,支持两个前端,wpa_cli是文本界面,wpa_gui是图形界面。
Linux磁盘工具 2015年05月20日 linux linux
FIO的简称是flexible I/O tester,能够创建一定数量的线程以实现特定的IO操作。 FIO是一个命令行工具,命令格式为:
fio [options] [jobfile]...
选项不是很重要,重要的是jobfile,jobfile遵循"ini"格式,实际上就是每一行包含一个参数和一个值。一个jobfile可以包含很多组,组名放在方括号中。以分号或井号开头作为注释符。
还有一个关键字叫global,一个jobfile可以有多个global组,每一个组只会受到上层中最接近的global影响。
排序算法 2015年05月17日 algorithm sort algorithm
堆排序是设计非常巧妙的排序,堆是一个数组,展开为树结构之后保证上一层元素比下一层元素大。
堆排序最巧妙的函数是max_heapify()
,需要注意这是一个递归函数,它将一个不合法的值插入到根节点,前提是左右子堆都是合法的堆,通过递归交换,把不合法的值传递到合法的位置,时间复杂度为O(lgn)
。这个函数被两次利用,建堆的时候用一次,排序的时候调用一次。建堆时从下往上构建,排序时从上往下取出最大值。