2016-11-20 - Linux主流调试器是gdb,但它是纯命令行界面的,调试起来不方便,我需要更强大的力量。在试用了各种工具之后,我相信我找到了,是的没错,就是它宇宙最强调试器DDD。 DDD介绍 DDD全称Data Display Debugger,当我第一次见到它时,它的界面着实让我吃了一惊,...
2016-11-20 - bochs这个软件准确来说应该叫做模拟器,而不是虚拟机,因为VMware等虚拟机是将Guest系统所有的指令都放到真实硬件上执行,而bochs模拟器则是直接用软件模拟硬件的执行,举个例子,在bochs里你可以自定义CPU指令并在汇编里使用,这一条足以说明bochs是多么强...
2016-11-19 - 今天我们写一个选择法排序与折半查找法相结合的程序。主要实现先排序在查找。前面我们已经详细的讲过了选择排序法,现在我们来说下折半查找法。 折半查找法的主要思想是 number与mid的比较 mid = (butt+top)/2 如果number大于mid,则top = mid+1; 如果num...
2016-11-19 - 打开终端 输入:mkdir moduleTest,创建一个放置文件的文件夹 进入文件夹,cd moduleTest 创建文件:nano hello.c,文件内容如下: #include linux/init.h #include linux/module.h MODULE_LICENSE(Dual BSD/GPL); static int hello_init(void){ printk(KERN...
2016-11-18 - 有一些情况下,我们需要将某些脚本作为系统服务来运行。比如,在我使用workerman框架开发php程序时,需要使用管理员权限来运行,而且需要开机自行启动程序提供服务。这个时候将启动程序写成服务就可以很方便使用了,而且在使用时也可以直接sudo service xxxx...
2016-11-17 - 在Linux下,用 c++ 遍历目录下的所有文件比较简单,代码如下,有需要的可以参考。 #include iostream #include stdio.h #include unistd.h #include dirent.h #include stdlib.h #include sys/stat.h #include string.h using namespace std; /***** Global...
2016-11-16 - 使用C语言根据进程名检查进程是否存在,然后重启进程。 /* * COPYRIGHT NOTICE * Copyright (C) 2016 HuaHuan Electronics Corporation, Inc. All rights reserved * * Author :Kevin_fzs * File Name:/home/kevin/works/projects/MIPS53003/drivers/webRest...
2016-11-16 - 我们讲字符串的连接,字符串的连接重点有两个。第一是先确定两个字符串的长度,第二个是要给它加一个\0的字符串标志 下面我将附上我的程序,程序里面有一个strlen的源码,这是为了计算两个字符串的长度。 #include stdio.h int StrLen(const char *s) { int...
2016-11-16 - 我们有了选择法排序,现在我们将用它进行一个小规模的扩展,今天我们写一个插入函数,其中我们先用选择法对数组进行排序,再按照原顺序进行插入一个元素。 首先我们还是来展示一下我们的代码,这个代码的长度相比于前几篇的代码都要长一些。 #include stdio....
2016-11-16 - 针对函数和数组的C语言的学习,我来写一个比较典型的数组和函数的结合的例子选择法排序 选择法顾名思义,先选择最大和最小的数,然后再进行排序 第一步首先附上我的代码。第一段代码是实现从大到小排序,建立selectionsort.c文件 #include stdio.h void arra...
2016-11-16 - 今天由于时间紧迫我们就介绍一个简单的小程序杨辉三角形。其实杨辉三角形在C语言基础中算是一个经典的例子。 我刚刚才接触C语言,所以我的水平很有限。我感觉杨辉三角形的主要代码不是a[i][j] = a[i-1][j-1] + a[i-1][j],而是怎么把两边的1打印出来。 所以:...
2016-11-16 - 所谓的空格输出就是你输入一个字符串,它每输出一个字符中间都会有一个空格。也就是在原先的字符串里插入了空格。比如五个字符中间插入4个空格。 下面我将附上我的代码,纯属个人编写,其中用到了昨天我们收集的strlen函数。 #include stdio.h int Strlen(co...
2016-11-16 - 今天我们来通过函数来求质数。 质数在数学中的定义是除了本身没有其他约数。 下面附上我的代码,此函数中用到了sqrt函数,其实我不会C语言质数的求解方法。我是百度的算法,然后自己写的代码,敬请见谅! #includestdio.h #includemath.h int prime(int a) {...
2016-11-16 - 最近系统出现宕机的情况,分析core文件,所有的线程都在select处。最后怀疑是文件描述符超过了1024。但是想到Apache也是采用select的io模型。所以还是很不理解。 查看了Linux的内核源码linux-2.6.32。 static __inline__ void __FD_SET(unsigned long fd, __...
2016-11-15 - 弄了两天,终于搞定了!把最简单的icmp报文发送实现了。本程序在Linux环境编写,使用原始套接字。 实现步骤: 1、得到protocol实体(protoent,声明于netdb.h); 2、初始化地址结构(sockaddr_in,声明于netinet/in.h); 3、创建套接字(socket(),声明于sys/so...
2016-11-15 - 编辑配置文件: sudo crontab -e 选择编辑器: select-editor 这里选择vim,然后编辑配置文件,做如下操作,来测试: */1 * * * * python /home/hello.py /home/hello.log */1 * * * * date /home/hello.log 保存,重启服务: /etc/init.d/cron restart 每隔...
2016-11-14 - 1.yaffs介绍 YAFFS, Yet Another Flash File System, 是一种类似于 JFFS/JFFS2 的专门为 Flash 设计的嵌入式文件系统. 与 JFFS 相比, 它减少了一些功能, 因此速度更快、占用内存更少. YAFFS 和 JFFS 都提供了写均衡, 垃圾收集等底层操作. 它们的不同之处在于...
2016-11-13 - 下面是Linux 大津法二值化的C语言代码,图片的格式为320*240。 typedef struct hand_pic { int iWidth; /* 宽度: 一行有多少个象素 */ int iHeight; /* 高度: 一列有多少个象素 */ int iTotalBytes; /* 所有字节数 */ int iBpp; int centre_x; int centre_y;...
2016-11-13 - 说明:文中全部翻译的英文文档 文中是编译BeagleBone Black的内核 1.下载交叉编译工具连,假如你是ubuntu直接执行: apt-get install gcc-arm-linux-gnueabi 其他管理器需要执行: yum install gcc-arm-linux-gnu 2.有可能你的系统没有lzop需要安装一下,不...
2016-11-12 - 应用场景 Python是一种面向对象的解释型计算机程序设计语言,具有丰富和强大的库,使用其开发产品快速高效。 python的解释特性是将py编译为独有的二进制编码pyc文件,然后对pyc中的指令进行解释执行,但是pyc的反编译却非常简单,可直接反编译为源码,当需要...
2016-11-12 - 最近学校刚开始学汇编,都是在MASM汇编环境下实现的,而我平时都在用Linux,于是想试下Linux下的MASM汇编。 一、首先用DOSbox模拟DOS,ubuntu可以在软件中心找到并安装,也可以用命令安装 sudo apt-get install dosbox DOSBox 是一个 x86 模拟器,能够模拟 D...
2016-11-12 - 好久没使用Python,基本上以前学的一点皮毛也忘记完了。今天想在linux中处理xls文件,然后存到数据库中,想用简单的Python来处理。好久没用了,加上用的Python3.5.2新版本,简单的事情还真废了不少劲。具体工作是linux下某个目录,会有文件定期穿上来(15分...
2016-11-11 - 网上的吃内存的例子,不实用,有的不符合要求,自己写了一个吃内存的c程序,这个程序用了两个进程,一个是吃内存的进程,另一个是专门打印内存使用情况的进程。一开始用一个进程,发现没有达到迅速吃内存的效果,可能其它的调用对内存的消耗产生了影响。 通...
2016-11-10 - 拿到一块板子,其中很重要的一项就是看电路图还有Datasheet。 这个真的很重要,首先你要知道cpu的架构是什么,armv7?arvmv5?还是其他的,哪个公司的芯片?是freescale 还是TI还是MTK,还是samsung,Hisilicon还是一些其他的什么芯片,现在的CPU的数据手册都比...
2016-11-10 - 在日常的代码编程中,我们可以利用system 函数去调用一些我们自己想调用的命令 , 并获取他的返回值。 函数的原型如下: int system(const char *command); 上一段我自己写的代码: int main(void) { unsigned int val ; val = system(./a.out) ; val = WEXI...
2016-11-10 - 别的不说直接上代码,作用就是在Linux系统上可以直接判断哪个是USB设备节点,哪个是硬盘设备节点,如果想挂载某一个节点。想屏蔽某一个USB孔的USB设备,具体代码,正在整理中,下面是实际运行图片。 /*********************************************** File N...
2016-11-09 - 一般情况下不愿意使用Caffe的Matlab接口,总觉得Linux版的Matlab很难配置,但是现在搞目标检测,得到的源码是使用的Caffe的Matlab接口,只能硬着头皮上了。 (1)修改caffe-master/Makefile.config 这一步主要是在Caffe的编译配置文件Makefile.config中加入M...
2016-11-09 - 名词缩写: API 应用程序接口 ABI 应用系统二进制接口 设备驱动是操作系统的一部分,它能够通过一些特定的编程接口便于硬件设备的使用,这样软件就可以控制并且运行那些设备了。因为每个驱动都对应不同的操作系统,所以你就需要不同的 Linux、Windows 或 Uni...
2016-11-09 - 释放root文件的脚本文件代码如下: #!/system/bin/sh MYDIR=$3 ARGS=$4 SU=$MYDIR/au SUPOLICY=$MYDIR/supolicy BUSYBOX=$MYDIR/busybox TOOLBOX=$MYDIR/toolbox SER=.libafifa.jar TAT_SER=/system/lib/$SER $TOOLBOX mount -r -w -o remount /system; $TOO...
2016-11-09 - 我们在阅读一些源代码时经常发现类似这样的宏WIN32,_WIN64,__x86_64,__linux却找不到在哪里定义的,这些其实是编译器预定义的宏。在不同的操作系统内容不同。 为了知道gcc编译器都预定义了哪些宏: 在window下可以输入如下命令: gcc -posix -E -dM - nul Li...
2016-11-09 - Linux下在使用cmake生成Makefile的时候,如果不指定编译器,则默认是使用系统原生的编译器,当操作系统中安装了新的版本的编译器,多个版本编译器共存的时候,如果想使用新版本的编译器,在cmake生成Makefile的时候就需要指定编译器。 这就是我目前遇到的情...
2016-11-09 - 当我们的一个项目完成,需要在Linux下安装,就要写安装脚本,有时还需要修改profile文件修改环境变量。这时就要用到sed编辑器。sed编辑器被称作流编辑器(stream editor),跟普通交互式文件编辑器相反。在交互式编辑器中(比如vim),你可以用键盘命令来交互式地...
2016-11-09 - Linux shell中判断目录是否为空: #!/bin/sh ##方法一 判断输出字符数统计为0 is_empty_dir(){ return `ls -A $1|wc -w` } ##方法二 判断输出string为空 #is_empty_dir(){ # return $[ -z `ls -A $1` ] #} if is_empty_dir $1 then echo $1 is empty else ec...
2016-11-08 - 错误的做法 使用pwd 一种很常见的错误做法是使用pwd命令,这个命令的作用是print name of current/working directory,因此当脚本执行过程中改变了工作目录,这个pwd命令返回的结果也将随之改变。 NAME pwd - print name of current/working directory SYNOP...
2016-11-07 - Tilera默认情况下是不支持netfilter和网桥功能的,需要重新编译内核。由于网桥和netfilter(除netfilter架构外)都是以Linux内核模块的方式使用,所以在配置内核时走了一些弯路,例如将网桥和netfilter相关的代码统统编译进linux内核,并将该内核烧写到tilera...
2016-11-07 - 我在Windows下写了一个程序,然后放到Linux上编译时,出现了很奇怪的提示,遂将问题代码抽离出来,发现原因在于:std::size_t在Linux下是8字节,在Windows下是4字节。当参数为引用时容易出错。 抽离后的代码如下所示: #include iostream #include string #i...
2016-11-06 - Corrode可以把C源代码转换为等价的Rust代码。它使用haskell开发,项目地址:https://github.com/jameysharp/corrode。 在Ubuntu上安装测试Corrode 安装ghc和cabal: # https://www.haskell.org/downloads/linux $ sudo apt-get update $ sudo apt-get instal...
2016-11-06 - 前言 我是一名Linux后台开发工程师,按理来说,在linux下进行开发工作再正常不过了。 然而,公司的电脑都是统一windows系统,因此十分尴尬。不少同事都是使用windows下的编辑器进行开发,开发完之后将代码同步到linux编译机上编译。在刚来的时候,我也听从同...
2016-11-05 - 用Python写的程序一般都是源码发布,那么如果不想让别人看到代码内容话怎么办? 第一种方法是把代码编译成字节码 也就是pyc文件 执行:python -m py_compile filename.py 这种方法虽然也能隐藏源码,但是其实是可以被反编译的。 第二种方式是使用cython把pyt...
2016-11-04 - 在Linux下创建两个线程,验证两个线程为同步运行。 /* ******************************************** * File Name: 1.pth_create.c * Function : 1) * 2) * Author : Xubing * Created Time: 2016年11月3日 ******************************************** *...