2015-12-25 - 写linux的网卡驱动,需要把arm版本迁移至x86版本测试,这就需要重新编译适应x86 PC的源码树。其实安装的系统已经有源码树,不需要像arm版本那样重新编译,位于/lib/modules/3.0.0-14-generic/build下。同时需要注意的是2.6.32版本和3.0.0-14内核在部分结构体...
2015-12-25 - 1.安装ctags+cscope 2.下载vim插件 Source Explorer/NERD Tree/Tag List 网址:www.vim.org Scrips--Bowse all --在keyword中搜索上述三个插件并下载解压到~/.vim文件夹下 3.vim 配置 打开vim配置文件,(ubuntu是在/etc/vim/vimrc中),在最后添加如下内容...
2015-12-25 - ---恢复内容开始--- 1.linux标准io的copy #includestdio.h int main(int argc,char **argv) { if(argc3) { printf(use:mycp file1 file2\n); return -1; } FILE *src=fopen(argv[1],r);//打开源文件 if(src==NULL) { printf(no file!\n); return -1; } FILE...
2015-12-25 - #includestdio.h #includesys/types.h #includesys/stat.h #includefcntl.h int main(int argc,char *agrv[]) { if(argc3) { printf(Please use:mycp file1 file2\n); return -1; } int file1_fd=open(agrv[1],O_RDONLY); if(file1_fd0) { return -1; } int...
2015-12-25 - 用开源项目将你的 JavaScript 变成圣诞树吧! 效果的话,可以去看一下我们公司的官网(http://www.souche.com ),里面涉及到的js代码在今天大部分被临时替换成了圣诞树,打开每个js代码即可看到效果。 其实也不神奇,我们使用了自己写的一个nodejs库,如果...
2015-12-24 - Linux 0.12内核的内存管理比较简单粗暴,内核只用了一个页目录,只能映射4G的线性空间,所以每个进程的虚拟空间(逻辑空间)只能给到64M,最多64个进程;每个进程都有对应的任务号nr,当一个进程需要分配进程空间时,只需要nr乘以64M就可以得出该进程空间的...
2015-12-24 - 系统:Ubuntu 14.04 JDK:openjdk 1.7.0_85 最近想开发floodlight的应用,于是准备用虚拟机安装个开发环境,先装了个Ubuntu12.04,然后按照这位的流程: apt-get -y install build-essential default-jdk ant python-dev eclipse git clone git://github.com...
2015-12-23 - 在windows下有一个很好的东西,那就是回收站,虽然有很多人批评它。linux不是没有回收站,很多桌面环境都可以看到是有回收站的。 这里是讨论如何设计一个回收站,而不是有没有的问题。最好的结果是将rm命令使用mv命令替代使用了。 1、设计思路 因为在linux下...
2015-12-23 - linux平台 将以下代码保存为脚本。(适用于debian系) 1 #! /bin/bash 2 #停止vmware 3 sudo service vmware stop 4 #停止vmware-USBArbitrator 5 sudo service vmware-USBArbitrator stop 6 #停止vmware-workstation-server 7 sudo service vmware-workstat...
2015-12-23 - UUID简介 UUID含义是通用唯一识别码(Universally Unique Identifier),这 是一个软件建构的标准,也是被开源软件基金会 (Open Software Foundation, OSF) 的组织应用在分布式计算环境 (Distributed Computing Environment, DCE) 领域的一部分。 UUID是指在一...
2015-12-23 - 是的,你知道的,苹果编程语言 Swift 已经开源了。其实我们并不应该感到意外,因为在六个月以前苹果就已经宣布了这个消息(http://itsfoss.com/apple-open-sources-swift-programming-language-linux/)。 苹果宣布推出开源 Swift 社区。一个专用于开源 Swif...
2015-12-23 - 不才,总结个人常用makefile模板,以备后用。 1、编译动态库 ############################################################# # Makefile for shared library. # 编译动态链接库 ############################################################# #set your...
2015-12-22 - 1.Windows 假设要引用的jar放在D:/test目录下,名字为t1.jar, java源文件放在D:/test/src目录下,名字为t2.java。 编译: javac -cp d:/test/t1.jar d:/test/src/t2.java 运行: java -cp d:/test/t1.jar;d:/test/src t2 注意,分号后面没有空格,否则报错。...
2015-12-19 - Mac: $ ifconfig en0|awk -F[ ]+ /inet/{print $2} fe80::a211:9bff:fe15:2976%en0 192.168.0.100 Ubuntu: $ ifconfig eth0|awk -F[: ]+ /inet addr/{print $4} 192.168.0.100 $ ifconfig eth0|awk -F[ ]+ /inet6 addr/{print $4} fe80::20c:16ff:fe4c:3340...
2015-12-17 - 我们经常需要长时间地坐在电脑前做一项具体的工作只为能够优化工作流程。这包括选择和配置能让你最高效工作的工具。从长远来看,简单易学的工具并不总是好的,那些能够充分个性化并无缝地融入独特工作流程的工具才是真正的好工具。 在这篇文章中,我想向大家...
2015-12-16 - 大多数时候,我们研究的是如何阅读源代码。但在一些情况下,比如源代码不公开或得到源代码的代价很高的情况下,我们又不得不需要了解程序的行为,这时阅读二进制文件就非常重要。假设现在有一个二进制可执行文件,我们木有源代码,但要了解它的实现,这里仅...
2015-12-16 - 最近在学习linux c编程 看到了守护进程的创建,感觉很好玩, 测试环境ubuntu 15.04 下面贴出测试代码 #include stdio.h #include stdlib.h #include unistd.h #include signal.h #include sys/param.h #include sys/stat.h #include time.h #include syslog....
2015-12-16 - 学习进程时,linu c上说新开的进程一般要执行另外一个程序,同时与父进程执行同一个程序没有意义 如下是如何执行一个新的程序 使用exec函数簇 exec函数簇包含如下函数 编写两个代码文件,其中使用exec_execve代码产生一个子进程来调用另一个程序processimage...
2015-12-14 - 在C调用Python模块时需要初始化Python解释器,导入模块等,但Python调用C模块却比较简单,下面还是以helloWorld.c 和 main.py 做一说明: (1)编写C代码,helloWorld.c代码很简单,只是输出Hello World!: (2)将编写的C代码编译成动态链接库的形式,具体命...
2015-12-13 - Linux中的错误都用宏定义对应着一个整数,叫errno。像下面这样的: #define ENAMETOOLONG63 /* File name too long */ #define EHOSTDOWN 64 /* Host is down */ #define EHOSTUNREACH65 /* No route to host */ #define ENOTEMPTY 66 /* Directory not empt...
2015-12-12 - 这个程序很早就开始写了,但过程中遇到了太多小问题,磕磕绊绊的,到今天程序才算是跑起来。 1、写Java源程序 class HelloWorld { private native void print(); public static void main(String[] args) { new HelloWorld().print(); } static { System.loa...
2015-12-12 - Linux最新的Kernel源码是3.12,让我们来看看它的目录结构: [linc@localhost linux-3.12]$ tree -L 1 . |-- arch :硬件体系结构相关,每个平台一个目录,如arm,mips |-- block :块设备驱动IO调度 |-- COPYING |-- CREDITS |-- crypto :加密算法等 |-- Do...
2015-12-12 - 特点: 1.基于Linux平台的网络编程,最重要的特点是要调用Linux的API函数。这是与windows平台最大的不同。 2.我们将发送的消息封装成结构体,增添了其传递消息的复杂性。 3.我们用的是socket编程,没有用ACE网络编程。 服务器: [c++ code] /* * MyMain.cpp...
2015-12-11 - 常见错误1:错误地将表达式作为函数的默认参数 在Python中,我们可以为函数的某个参数设置默认值,使该参数成为可选参数。虽然这是一个很好的语言特性,但是当默认值是可变类型时,也会导致一些令人困惑的情况。我们来看看下面这个Python函数定义: def foo(...
2015-12-11 - 最近在搞wm9713的外音播放和耳机的检测,搞了几天不负所望,终于搞定了。现记录如下,开发板为real210 v6.2版本: 如果要让外音输出,那么确保wm9713的0x1c寄存器的值为0x1200,耳机输出为0x00a0,当然两者也可同时输出,值为0x12a0。 另外还要设置AC97_EXTE...
2015-12-10 - 系统定时器频率是通过静态预处理定义的,在系统启动时按照 HZ 值对硬件进行设置。体系结构不同,HZ的值也不同。对于某些体系结构,甚至是机器不同,HZ的值也会不同。 内核在 asm/param.h 中定义了 HZ 的值。我们接下来就来比较一下具体源码: 1、arm 体系结...
2015-12-10 - \r是回车,\n是换行,前者使光标到行首,后者使光标下移一格。通常用的Enter是两个加起来。 回车和换行 Unix系统里,每行结尾只有换行,即\n; Windows系统里面,每行结尾是换行回车,即\n\r; Mac系统里,每行结尾是回车。 一个直接后果是,Unix/Mac系统下...
2015-12-09 - 摘要 Linux kernel 成功的两个原因: 架构设计支持大量的志愿开发者加入到开发过程中; 每个子系统,尤其是那些需要改进的,都支持很好的扩展性。 正是这两个原因使得 Linux kernel 可以不断进化。 一、Linux内核在整个计算机系统中的位置 Fig 1 - 计算机系...
2015-12-09 - 在shell中常用的特殊符号罗列如下: # ; ;; . , / \ string| ! $ ${} $? $$ $* string* ** ? : ^ $# $@ `command`{} [] [[]] () (()) || {xx,yy,zz,...}~ ~+ ~- \...\ + - %= == != 输出/输入重导向 : 2 2 2 # 井号 (comments) 这几乎是个满场都有的符号,除...
2015-12-08 - 现在随着CPU核的数量不断的增加,Linux内核也加入了对多核CPU的支持和管理。在Linux内核配置中: CONFIG_SMP;如果这个选择为Y,则Linux系统支持多核CPU。如果你选N,内核将会在单个或者多个CPU的机器上运行,但是只会使用一个CPU。如果你选Y,内核可以在很多...
2015-12-08 - 摘要 介绍在Ubuntu平台搭建Swift开发环境; 介绍Swift脚本解析器swift的使用; 介绍Swift编译器swiftc的使用; 1.序言 这两天一直忙,没来得及记录东西,周三12月4日凌晨1点多看到苹果正式开源了Swift,国外各大媒体资讯动作超级快。我也兴奋的起来看了一遍...
2015-12-08 - deb包的构建的命令为: dpkg-buildpackage 这样会自动完成所有从源代码包构建二进制包的工作,包括以下几个步骤: 0、清理源代码树(debian/rules clean) 1、构建源代码包(dpkg-source -b) 2、构建程序(debian/rules build) 3、构建二进制包(fakeroot debian/...
2015-12-08 - 在GNU Linux系统中,很多软件都是支持多种国家的语言的,而这些语言一般都是通过一个*.po的文件而区别开来不同的国家的语言的,有的可能会编译成二进制文件*.mo,而编译成二进制文件的命令为msgfmt。 有的时候存在这样的场景,为了修改语言翻译的问题,想直...
2015-12-07 - 需求: 在编写bash脚本时,需要用户输入一个密码,要保证用户输入的密码不会被别人看到; 如何解决: 有两种方法: 1、使用ssty进行无回显的参数的配置开关; 2、使用read -s 进行无回显的读取; 例子:假如密码为12345678 方法一: $ cat sttynoecho.sh #!/...
2015-12-07 - 如果你紧跟最新的编程语言和框架,那就太棒了:你已经掌握了写出良好代码的技术能力。但是要想在岗位上真正脱颖而出,你还必须具备一些特质。下面就是成为一名优秀程序员所必须具备的10个特质。(我们知道下面这个列表并不全面,所以读者可以在评论区给出自...
2015-12-06 - 通过一些实际项目的开发,发现这样一个现象,在 Windows 下可以通过指定 __declspec(dllexport) 定义来控制 DLL(动态链接库)中哪些函数可以导出,暴露给其他程序链接使用,哪些函数是 DLL 内部自己使用;而在 Linux 下不存在 dllexport 这样的指示字,默认...
2015-12-06 - 和学习语言一样,第一个驱动程序也是以hello world为例开始的,网上的教程也是很多很多,但是只有在真正实践了之后才会发现成功编译出来还是会遇到很多问题的. 1)源码问题: 驱动的源码直接奉上 #includelinux/module.h #includelinux/init.h #includelinux/kern...
2015-12-04 - 最近的项目出现了一个bug。项目是基于一个已有的成熟开源软件之上做修改的,新写了加解密库,用于为该成熟开源软件增添加解密功能。功能增加完成后效果都很好,可是就是中文出不来了,也就是说没办法自适应多语言环境了(提示信息在中文操作系统下是中文,英...
2015-12-03 - LIBRARY_PATH和LD_LIBRARY_PATH是Linux下的两个环境变量,二者的含义和作用分别如下: LIBRARY_PATH环境变量用于在程序编译期间查找动态链接库时指定查找共享库的路径,例如,指定gcc编译需要用到的动态链接库的目录。设置方法如下(其中,LIBDIR1和LIBDIR2...
2015-12-02 - 我们用gcc编译程序时,可能会用到-I(大写i),-L(大写l),-l(小写l)等参数,下面做个记录: 例: gcc -o hello hello.c -I /home/hello/include -L /home/hello/lib -lworld 上面这句表示在编译hello.c时: -I /home/hello/include表示将/home/hello/in...