- 博客(69)
- 资源 (7)
- 问答 (1)
- 收藏
- 关注
原创 使用 openssl 的AES 加密
源码:#include <stdio.h>#include <memory.h>#include <stdlib.h>#include <openssl/aes.h>int main(int argc, char *argv[]){ unsigned char buf[16] = "1234567890abcde"; unsigned char buf2[16]; un
2015-07-31 16:04:23 2044
原创 移植 expect(openwrt X86主机)
下载源码:TCL源码:http://iweb.dl.sourceforge.net/project/tcl/Tcl/8.6.4/tcl8.6.4-src.tar.gzExpect源码:http://colocrossing.dl.sourceforge.net/project/expect/Expect/5.45/expect5.45.tar.gz由于 expect 是基于 tcl 语言的,所以
2015-07-30 17:09:18 2370
原创 RT5350 安装 读卡器驱动
首先确认 SD卡 的接口(据说是有2种 第一种是sdio 第二种是spi 如果这两种都没有,那么可以做成类似读卡器的一个设备,也就是USB设备) 我手上这块是 SPI 接口的, 那么在内核上选上SPI模块即可Kernel modules ---> SPI Support ---> <*> kmod-mmc-spi保存退出,第一次 make 烧录之后发现还是未识别。原
2015-07-30 10:05:46 1188
原创 修改 openwrt 登陆欢迎界面
原 openwrt 登陆界面 修改后的 方法就是修改 /etc/banner 文件即可。。有空在制作一个好看点的图案把。。先把方法记录下来
2015-07-29 16:07:21 7071
原创 安装交叉工具链
本文以Openwrt X86的工具链为例制作openwrt 的工具链 参考 http://blog.csdn.net/u011641885/article/details/46374945解压工具链压缩包tar xvf OpenWrt-Toolchain-x86-generic_gcc-4.8-linaro_uClibc-0.9.33.2.Linux-i686.tar.bz2进入工具链目录c
2015-07-29 13:09:42 810
原创 ssh 使用root用户直接登陆
出于安全原因,默认参数很严格,禁止root用户直接使用ssh登陆 比如先用非root的帐户,登陆到ssh后,su成为root解决方法 修改 sshd_config 配置文件vi /etc/ssh/sshd_config# 将 PermitRootLogin改成 PermitRootLogin yes然后重启 ssh 服务即可server ssh restart
2015-07-29 11:53:33 1895
原创 linux ssh 免密码登陆
在 client 端生成公钥和密钥 在 client 端命令行下执行ssh-keygen -t rsa -P ''然后敲回车既可生成公钥和密钥将 client 端的公钥添加到用于认证的 Server 端的公钥文件中 步骤如下: 1、将 client 端公钥复制到 Server 端scp scp ~/.ssh/id_rsa.pub gino@172.16.60.134:~/.ssh/2、将公钥内
2015-07-28 16:34:46 728
原创 ssh 反向隧道访问内网机器
有时候我们需要从公网访问内网的机器。现在一般家里都会有个路由器,路由器一般都会带防火墙,所以从墙外要访问内部的机器,都需要设置防火墙,做端口映射。今天我看到ssh有一个有趣的功能,可以在不设置端口影射的情况下直接建立一个隧道,允许从外部访问内网的机器。假设我们有两台机器,一台在内网中,IP是192.168.1.2,命名为dest;另一台在公网上,地址是pub.server.net,命名为src。我们
2015-07-28 14:20:54 1513
原创 UltraEdit 配置 shell 语法高亮
从UE官网下载wordfile扩展文件包, http://www.ultraedit.com/files/wf/wf.zip ,解压后找到文件 “unixshell.uew” ,将其复制到 ue的wordfile配置文件夹.点击菜单上的 “高级” –> “配置” 勾选 “启用语法彩色显示” –> “已安装的词语文” 选择bash –> 点击应用,重启 UE即可本文参考:http://blog.cs
2015-07-28 09:58:56 5073
原创 linux 进程等待 wait 、 waitpid
waitpid() 与 wait() 功能类似,都是用户主进程等待子进程结束或中断. 可用于进程之间的同步wait 函数原型pid_t wait(int *status);函数说明 wait() 会暂时停止目前进程的执行,直到有信号来到或子进程结束.如果在调用wait() 时子进程已经结束,则 wait() 会立即返回子进程结束状态值.子进程的结束状态值会由参数 status 返回,而子进程的进程
2015-07-26 23:26:01 1086
原创 linux exec函数族
fork()函数通过系统调用创建一个与原来进程(父进程)几乎完全相同的进程(子进程是父进程的副本,它将获得父进程数据空间、堆、栈等资源的副本。注意,子进程持有的是上述存储空间的”副本”,这意味着父子进程间不共享这些存储空间.linux将复制父进程的地址空间内容给子进程,因此,子进程有了独立的地址空间),也就是这两个进程做完全相同的事。 在fork后的子进程中使用exec函数族,可以装入和运行其它程
2015-07-26 11:27:57 724
原创 虚拟机上的Ubuntu开机显示“无法应用原保存的显示器配置”
如图: 解决方法: 删除monitors.xml 文件rm ~/.config/monitors.xml
2015-07-26 10:26:41 7583 4
原创 linux c 创建进程
函数原型pid_t fork(void);fork的奇妙之处在于它被调用一次,却返回两次,它可能有三种不同的返回值: 1、在父进程中,fork返回新创建的子进程的PID 2、在子进程中,fork返回0; 3、如果出现错误,fork返回一个负值。用途: 1、一个进程希望复制自身,从而父子进程能同时执行不同段的代码。 2、进程想执行另外一个程序#include <sys/types.h>#i
2015-07-25 23:49:34 2284
原创 linux 进程控制理论基础
进程的定义 进程是一个具有一定独立功能的程序的一次运行活动。进程的特性 动态性: 进程的实质是程序的一次执行过程。进程是动态产生,动态消亡的。 并发性: 任何进程都可以同其他进程一起并发执行 独立性: 进程是一个能独立运行的基本单位,同时也是系统分配资源和调度的独立单位 异步性: 由于进程间的相互制约,使进程具有执行的间断性,即进程按各自独立的、不可预知的速度向前推
2015-07-25 21:50:00 643
原创 linux c 获取当前运行进程总数
获取当前运行进程总数的命令为: ps auxw | wc -l获取当前运行进程总数的源码如下:#include <stdio.h>#include <stdlib.h>#include <dirent.h>#include <string.h>#include <ctype.h>#include <errno.h>int main(int argc, char *argv[]){
2015-07-25 10:13:28 5189
原创 Ubuntu 1204 升级到 1404
sudo apt-get updatesudo apt-get dist-upgradeupdate-manager -d中途会询问是否替换配置文件等,根据个人需求选择吧
2015-07-24 19:19:40 2062
原创 linux popen函数
函数原型FILE *popen(const char *command, const char *type);int pclose(FILE *stream);函数说明 popen()函数通过创建一个管道,调用fork()产生一个子进程,执行一个shell以运行命令来开启一个进程。这个管道必须由pclose()函数关闭,而不是fclose()函数。pclose()函数关闭标准I/O流,等待命令执
2015-07-24 16:09:06 961
原创 linux smartmontools 工具
smartmontools是一款开源的磁盘控制,监视工具,可以运行在Linux,Unix,BSD,Solaris,Mac OS,OS/2,Cygwin和Windows上,同时它还可以从启动光盘或启动软盘运行,支持ATA/ATAPI/SATA-3(到-8)位的硬盘和 SCSI硬盘,另外还支持磁带设备,它的老家在smartmontools.sourceforge.net,实际上它是一个软件包,包括了两个
2015-07-24 12:02:26 3983
原创 Makefile.am 文件介绍
Makefile.am 是一种比 Makefile 更高层次的规则。只需要指定要生成什么目标,它由什么源文件生成,要安装到什么目录 等构成下表列出了可执行文件、静态库、头文件和数据文件,四种书写 Makefile.am 文件的一般格式。 对于可执行文件和静态库类型,如果只想编译,不想安装到系统中,可以用 noinst_PROGRAMS 代替 bin_PROGRAMS, noinst_LIBRARI
2015-07-24 10:38:12 4722
原创 shell 脚本调试工具
bashdb 是一个类似GDB的脚本调试软件,具有断点、单步执行、观察变量等功能安装方法:sudo apt-get install bashdbbashdb 使用方法: bashdb [options] script-name [script options]options:-h : 打印命令的帮助信息-A : 设置输出额外的堆栈和状态信息。更多选项信息使用man bashdb
2015-07-23 23:12:57 1930
原创 shell 脚本调试(使用shell的执行选项)
-n 只读取shell脚本,但是不实际执行 常用于测试shell是否存在语法错误-x 进入跟踪方式,显示所执行的每一条命令。 使shell在执行脚本的过程中把它实际执行的每一个命令行显示出来,并且在行首显示一个”+”号-c “string” 从string中读取命令 使shell解释器从一个字符串中而不是从一个文件中读取并执行shell命令。当需要临时测试一小段脚本的执行结果时,可以使用这个
2015-07-23 22:49:34 2216
原创 linux c编程访问数据库
源码如下:#include <stdio.h>#include <stdlib.h>#include <mysql/mysql.h>int main(){ /*定义mysql变量*/ MYSQL *coon; //数据库链接时使用的句柄 MYSQL_RES *res; //返回行的查询结果 MYSQL_ROW row; //记录
2015-07-23 22:06:24 705
原创 mysql 远程登陆不上
当使用 TCP/IP 连接 mysql 时, 出现 : Can’t connect to MySQL server on ‘xxx.xxx.xxx.xxx.’(111)这个错误。经过反复折腾: 确定IP没错,用户权限是有的(支持远程IP连接),配置文件以注销 绑定本地IP选项。。。 浪费了半小时之后。。。看到以段话,,,如果是在linux shell命令行中直接打 mysql 命令,能够顺利连
2015-07-23 17:58:45 895
原创 mysql 设置远程登陆以及新增用户
mysql 简单的管理命令: 启动mysql sudo start mysql 停止mysql sudo stop mysql允许远程访问的设置:sudo vi /etc/mysql/my.cnf注释掉 bind-address = 127.0.0.1增加新用户:GRANT ALL PRIVILEGES ON *.* TO gino@'%' IDENTIFIED BY "123456";
2015-07-23 17:41:05 878
原创 ubuntu 1204 安装mysql
检测本机是否有安装mysqlsudo netstat -tap | grep mysql执行上面的命令之后,看到 mysq 的socket 处于监听状态,说明有安装成功。安装mysqlsudo apt-get install mysql-server mysql-client libmysqlclient-dev安装过程中会提示输入数据库管理员密码(自己设定的),如图 设置完成之后等待安装完
2015-07-23 16:30:27 764
原创 openwrt 设置连接无线上网
进入 网页管理界面Network --> Firewall --> AddGeneral Settings --> Name 名字 Input [accept] Output [accept] Forward [reject] Masquerading 勾选上 MSS clamping 勾选上Covered networks
2015-07-23 10:38:43 6040
原创 linux 命令之 dmidecode
Dmidecode 这款软件允许你在 Linux 系统下获取有关硬件方面的信息。Dmidecode 遵循 SMBIOS/DMI 标准,其输出的信息包括 BIOS、系统、主板、处理器、内存、缓存等等。Dmidecode简介 DMI (Desktop Management Interface, DMI)就是帮助收集电脑系统信息的管理系统,DMI信息的收集必须在严格遵照SMBIOS规范的前提下进行。
2015-07-22 21:57:12 1974
原创 Makefile 选项 CFLAGS 、LDFLAGS 、LIBS
CFLAGS 表示用于C编译器的选项 CXXFLAGS 表示用于C++编译器的选项 这两个变量实际上涵盖了编译和汇编的两个步骤CFLAGS:指定头文件(.h)的路径,如:CFLAGS=-I/usr/include -I/path/include 。同样地,安装一个包时会在安装路径下建立一个include目录,当安装过程中出现问题时,试着把以前安装的包的include目录加入到该变
2015-07-22 21:12:46 2591
原创 autotools 生成的makefile 常用 目标
make all 不加任何 target , 默认就是 all, 作用是编译软件make install 安装软件包,如果安装到系统目录,需要 root 权限make clean 清除编译产生的目标文件make distclean 可以同时清除编译的结果和 configure 输出的文件make tags 生成 etags 使用的 TAGS 文件make dist 生成软件发布包,为 t
2015-07-22 21:04:49 651
原创 linux c 经常混淆的概念
指针函数 and 函数指针指针函数是指带指针的函数,即本质是一个函数。函数都有返回类型(如果不返回值,则为无值型),只不过指针函数返回类型是某一类型的指针。定义格式类型名 *函数名(函数参数列表)函数指针是指向函数的指针变量。因而“函数指针”本身首先应是指针变量,只不过该指针变量指向函数。定义格式返回值类型 (*指针变量名)(形参列表)指针数组 and 数组指针指针数组数组元素全为指针的数组
2015-07-22 10:17:21 1075
原创 linux openssl加密文件
openssl 支持的加密算法-aes-128-cbc -aes-128-cfb -aes-128-cfb1-aes-128-cfb8 -aes-128-ecb -aes-128-ofb-aes-192-cbc -aes-192-cfb -aes-192-cfb1-aes-192-cfb8 -aes-192-ecb -aes-192-ofb-aes-256-cbc -aes-256-cfb -ae
2015-07-20 23:26:31 1542
原创 初识 linux expect
expect是一个用来实现自动交互功能的软件套件 。使用它可以创建脚本用来实现对命令或程序提供输入,而这些命令和程序是期望从终端(terminal)得到输入,一般来说这些输入都需要手工输入进行的。 expect则可以根据程序的提示模拟标准输入提供给程序需要的输入来实现交互程序执行。expect需要Tcl编程语言的支持,要在系统上运行expect必须首先安装Tclexpect安装sudo apt-ge
2015-07-20 17:30:02 888
原创 Ubuntu 1204挂载 exfat文件格式
挂载U盘时提示:mount: unknown filesystem type ‘exfat’ 应该是 exfat 文件系统系统不识别。解决方法sudo apt-get install exfat-utils安装完成之后在mount就可以挂载了
2015-07-19 22:54:56 1003
原创 linux c 获取系统关机时间
源码如下:#include <utmp.h>#include <stdio.h>#include <string.h>#include <time.h>int main(){ struct utmp *u , ut; FILE *fp = fopen("shutdown_note","w+"); utmpname("/var/log/wtmp"); whil
2015-07-19 22:00:18 1381 1
原创 linux c 操作utmp 和 wtmp 文件接口
/var/run/utmp 保存当前在本系统中的用户信息 /var/log/wtmp 保存登陆过本系统的用户信息他们保存的信息是基于结构体 struct utmp 的(/usr/include/bits/utmp.h)utmp 结构体定义如下:struct utmp{ short int ut_type; //登录类型 pid_t ut_pid; //login 进程的
2015-07-19 21:41:50 6073
原创 linux c++ 获取基本类型的极值
源码如下:#include <iostream>#include <string.h>#include <limits>using namespace std;int main() { cout << "bool: \t\t" << "所占字节数:" << sizeof(bool); cout << "\t最大值:" << (numeric_limits<bool>::
2015-07-19 13:28:18 1122
原创 Ubuntu gedit 中文乱码解决方法
安装 gconf-editor 软件包sudo apt-get install gconf-editor在命令行运行 gconf-editor 程序,开启编辑器配置界面gconf-editor如图 选择 apps->gedit-2->preferences->encodings 然后双击右边列表的 “auto_detected”选项,打开 “Edit Key”设置界面,然后点击 “Add”按
2015-07-19 12:03:34 754
原创 Ubuntu1204 vim中文乱码解决方法
添加中文字符编码sudo vi /var/lib/locales/supported.d/local#添加下面的中文字符集zh_CN.GBK GBKzh_CN.GB2312 GB2312zh_CN.GB18030 GB18030#保存退出使添加的中文字符集生效sudo dpkg-reconfigure locales设置vim中的中文显示配置sudo vi /etc/vim/vimr
2015-07-19 11:33:01 853
原创 linux c 获取文件行数
源代码如下:/*获取文件行数*/int file_wc(const char *filename){ int fd; register int linect = 0; char buf[MAXBSTZE]; int len; char *p = NULL; if(filename) {
2015-07-18 20:03:08 6147 1
原创 linux /proc/net/arp 文件
/proc/net/arpThis holds an ASCII readable dump of the kernel ARP table used for address resolutions. It will show both dynamically learned and preprogrammed ARP entries. The format is:IP address
2015-07-18 18:45:01 12381 1
使用GDB调试linux软件
2013-08-22
关于使用 dup2 函数重定向的一些疑问,望高手解惑~~!!
2015-09-06
TA创建的收藏夹 TA关注的收藏夹
TA关注的人