
linux/c
文章平均质量分 88
波风水门413
这个作者很懒,什么都没留下…
展开
-
linux shell脚本中执行ntpclient
#!/bash/sh# Program:# execute ntpclient cmd # Version: v1.0# Author: hp#function syntime() { echo "synchronizing time...." echo "server is $1" echo "execute cmd..." if te原创 2016-08-15 21:32:55 · 2586 阅读 · 0 评论 -
ARM的MMU的作用
ARM的MMU的作用:负责虚拟地址与物理地址的转换。多进程(应用)的操作系统如WINCE,需要MMU才能达到每个用户进程都拥有自己独立的地址空间的目标。比如A进程在地址0x30000000映射了可执行文件(ADS链接的),而B进程也在0x30000000映射了可执行文件,如A进程读取0x30000000的内容则为A进程映射到0x30000000的内容,而B进程读取0x30000000的转载 2013-10-10 21:21:45 · 1361 阅读 · 0 评论 -
#ifndef的用法
文件中的#ifndef 头件的中的#ifndef,这是一个很关键的东西。比如你有两个C文件,这两个C文件都include了同一个头文件。而编译时,这两个C文件要一同编译成一个可运行文件,于是问题来了,大量的声明冲突。 还是把头文件的内容都放在#ifndef和#endif中吧。不管你的头文件会不会被多个文件引用,你都要加上这个。一般格式是这样的: #ifndef #define转载 2013-09-12 14:34:29 · 1219 阅读 · 0 评论 -
C流水灯
#include // 延时子程序void delayms(unsigned char ms) { unsigned char i;while(ms--){for(i = 0; i }}main(){unsigned char LED; LED = 0xfe; //0xfe = 1111 1110 while(1)转载 2013-09-11 17:56:03 · 934 阅读 · 0 评论 -
单片机流水灯的C原理
单片机中bit和sbit有什么区别bit映射到IO口(P1^1这种IO口的“位”)bit在RAM中的可位寻址空间中,一般用作程序判断的标志位。你可以认为它们一个对外(sbit),一个对内(bit)。#include //51头文件#define DY_PORT P1 //设置LED连接的I/O组#define DY_SPEED 100 //设置每一个明亮级的停留时间(值域转载 2013-09-11 13:02:29 · 1667 阅读 · 0 评论 -
socket通信
“一切皆Socket!”话虽些许夸张,但是事实也是,现在的网络编程几乎都是用的socket。——有感于实际编程和开源项目研究。我们深谙信息交流的价值,那网络中进程之间如何通信,如我们每天打开浏览器浏览网页时,浏览器的进程怎么与web服务器通信的?当你用QQ聊天时,QQ进程怎么与服务器或你好友所在的QQ进程通信?这些都得靠socket?那什么是socket?socket的类型有哪些?还有转载 2013-07-25 15:53:40 · 558 阅读 · 0 评论 -
svn revert merge
第一种情况:改动没有被提交(commit)。这种情况下,使用svn revert就能取消之前的修改。svn revert用法如下:# svn revert [-R] something其中something可以是(目录或文件的)相对路径也可以是绝对路径。当something为单个文件时,直接svn revert something就行了;当something为目录时,需要加上参转载 2016-10-14 09:26:20 · 1210 阅读 · 0 评论 -
undefined reference to 'floor'/undefined reference to
undefined reference to 'floor'/undefined reference to `&undefined reference to 'pow'/undefined reference to `& 今天用linux编译一个程序的时候遇到了一个小问题,如标题所示,先说解决方法在gcc 编译的时候加上-lm选项就好了,呵呵原因:floor转载 2016-10-16 12:15:55 · 3809 阅读 · 0 评论 -
Makefile:2:*** missing separator. Stop
在make命令后出现这种错误提示,是提示第2行没有分隔符。例如:1 target:prerequisites2 command……改为:1 target:prerequisites2 command……就可以了。在Makefile文件中,命令必须以【tab】键开始。在.vimrc中添加以下代码后转载 2016-10-16 12:27:46 · 9323 阅读 · 0 评论 -
C语言中dlsym的小例子
dlopen dlsym dlclose dlerror主要是实现在其他代码中通过符号调用动态库中的函数或者变量,具体如下编写一个动态库的.c文件,libshare.c编译 gcc -g -fPIC -shared libshare.c -o libshare.so编写调用函数的文件mymain.c 编译mymain.cgcc mymain.c -ldl生成a.原创 2016-10-03 10:27:32 · 5881 阅读 · 0 评论 -
proxy
原创 2017-04-18 21:25:26 · 278 阅读 · 0 评论 -
simple_factory
#includetypedef struct _operate{ int a; int b; int (*getResult)(struct _operate *p);}Operate;typedef struct _add{ Operate add; int c;}Add;typedef struct _sub{ Operate sub; int c;}Sub;原创 2017-04-16 11:10:08 · 282 阅读 · 0 评论 -
singleton
#include#include#include#includepthread_mutex_t lock = PTHREAD_MUTEX_INITIALIZER;typedef struct _object{ int data; void* (*data_func)(void *);}singleton;singleton *getSingleton(){ stati原创 2017-04-16 11:06:19 · 243 阅读 · 0 评论 -
factoryMethod
factory.h//****************************************/* define operate abstract class*/typedef struct _operate{ int numA; int numB; int(*getresult)(struct _operate *this);}Operate;/* decl原创 2017-04-22 18:12:55 · 346 阅读 · 0 评论 -
Command Pattern
原创 2017-05-20 17:30:55 · 280 阅读 · 0 评论 -
mediator
#include#includeusing namespace std;class china;class india;class country;class mediator{public: china *chin; india *indi; mediator(){}; mediator(china *chin,india *indi); void send(str原创 2017-07-23 19:37:06 · 756 阅读 · 0 评论 -
command c++
#include#include#include#include#includeusing namespace std;class Barbecuer{ public: int bake_mutton() { puts("chef is cooking mutton"); }; int bake_chicken() { puts("chef is c原创 2017-07-25 11:09:14 · 417 阅读 · 0 评论 -
jlink烧录程序小知识
网上有不少的文章讲如何使用JLink烧程序到Mini2440,我总结了一下,主要的步聚如下: (1)下载init.bin文件,并运行。它能将SDRAM配置好。 (2)下载u-boot.bin文件到SDRAM内存地址上,并运行它。 (3)使用u-boot命令将自身写到NandFlash或NorFlah。 首先要安装JLink驱动,然后就是正确转载 2013-10-27 16:18:11 · 2911 阅读 · 1 评论 -
vmware中红帽linux的上网
Nat方式,分下面3步走1、开启管理工具--服务中的VMware DHCP Service和VMware NAT Service两个服务2、设置ADSL连接的Internet连接共享。3、连接ADSL并拨号,启动Linux,设置为Linux为DHCP获取IP和DNS,之后重启Linux或重启网络都可以原创 2013-11-21 17:25:21 · 843 阅读 · 0 评论 -
linux常用编程命令
玩过Linux的人都会知道,Linux中的命令的确是非常多,但是玩过Linux的人也从来不会因为Linux的命令如此之多而烦恼,因为我们只需要掌握我们最常用的命令就可以了。当然你也可以在使用时去找一下man,他会帮你解决不少的问题。然而每个人玩Linux的目的都不同,所以他们常用的命令也就差异非常大,而我主要是用Linux进行C/C++和shell程序编写的,所以常用到的命转载 2013-11-04 20:29:54 · 606 阅读 · 0 评论 -
linux中GUN makefile自动生成
作为Linux下的程序开发人员,大家一定都遇到过Makefile,用make命令来编译自己写的程序确实是很方便。一般情况下,大家都是手工写一个简单Makefile,如果要想写出一个符合自由软件惯例的Makefile就不那么容易了。 在本文中,将给大家介绍如何使用autoconf和automake两个工具来帮助我们自动地生成符合自由软件惯例的Makefile,这样就可 以象常见的GNU程序一转载 2016-08-28 23:31:12 · 3206 阅读 · 0 评论 -
QT按键事件
QT中的按键事件:新建一个干净的工程首先在mainwindow.cpp中加入QMessageBox.h1.在MainWindow 类的头文件中添加事件处理函数的声明,这块要用slots宏声明这是一个信号槽的响应函数,到时候有信号发生就会在信号槽中找到这个信号public slots:void click_func();2.在MainWindows类的构造函数中连接信号和信号原创 2016-09-03 10:57:17 · 1868 阅读 · 0 评论 -
编码风格
最近上班由原来的android转为linux c开发,由于以前没有做过c方面的编码工作,又常听人说一个良好的编码风格不仅可以有助于读者更容易理解你的代码,而且更能体现你专业的编码规范,所以我打算抽点时间学些c的代码规范。一下都是从网上搜的一些编码规范,加上我平时看的一些开源代码总结出来的。要说明的是主流的编码风格有好几种,不必循规蹈矩,选择一种适合自己的最重要1.关键字if, while,原创 2016-08-14 14:58:30 · 522 阅读 · 0 评论 -
链路层套接字
最近看了下udhcp的源代码,其中会根据LISTEN_MODE建立不同的socket进行通信,一个是普通的传输层UDP套接字,另外一个是链路层的套接字,由于本人才疏学浅,所以在网上搜罗了一下有关链路层套接字的东东,在此记录一下。 链路层套接字也叫原始套接字(raw packet),可以接收网卡上的数据帧,换句话说是直接从网卡上拿数据,可以今夕流量统计和分析,socket的建立有一下几种:翻译 2016-08-14 13:57:29 · 1959 阅读 · 0 评论 -
字符串指针与char型指针数组
一、字符串指针字符串是一种特殊的char型数组,指向char类型数组的指针,就是字符串指针。与普通指针一样,字符串指针在使用前也必须定义。字符串与char数组的区别在于长度,字符会自动在尾部加上一个长度‘\0’,而char型数组的长度就是其字符的个数。字符串长度是字符个数+1。例:[cpp] view plaincopyprint?#转载 2015-07-26 13:49:53 · 1918 阅读 · 0 评论 -
C++ 无名对象
可以直接调用构造函数产生无名对象。 例如,下面的代码在函数fn()中,创建了一个无名对象:class Student{public: Student(char*);};void fn(){ Student("Randy"); // 此处为无名对象} 无名对象可以作为实参传递给函数,可以拿来拷贝构造一个新对象,也可以初始化一个引用的声明。 例如,转载 2015-07-26 12:45:51 · 915 阅读 · 0 评论 -
linux内核模块安装hello
首先编写内核模块源码#include#includeMODULE_LICENSE("GPL");static int hello_init(void){ printk("hello brother\n"); //表示打印的优先级,一共有8个好像 return 0;}static void hello_exit(voi原创 2015-02-02 22:40:32 · 759 阅读 · 1 评论 -
C++构造函数&继承方式
构造方法用来初始化类的对象,与父类的其它成员不同,它不能被子类继承(子类可以继承父类所有的成员变量和成员方法,但不继承父类的构造方法)。因此,在创建子类对象时,为了初始化从父类继承来的数据成员,系统需要调用其父类的构造方法。如果没有显式的构造函数,编译器会给一个默认的构造函数,并且该默认的构造函数仅仅在没有显式地声明构造函数情况下创建。构造原则如下:1. 如果子类没有定义构转载 2014-10-20 22:25:41 · 600 阅读 · 0 评论 -
linux下常用查找命令
1. findfind是最常见和最强大的查找命令,你可以用它找到任何你想找的文件。find的使用格式如下: $ find - : 所要搜索的目录及其所有子目录。默认为当前目录。 - : 所要搜索的文件的特征。 - : 对搜索结果进行特定的处理。如果什么参数也不加,find默认搜索当前目录及其子目录,并且不过滤任何结果(也就是返回原创 2014-10-20 11:20:28 · 595 阅读 · 0 评论 -
c++类模板
1函数模板#includeusing namespace std;template T max(T a,T b,T c){ if(a<b)a=b; if(a<c)a=c; return a; }int main(){ int i;float f;double d; int i1=44,i2=33, i3=55; float f1=324.1, f2=12.324原创 2014-10-19 22:31:10 · 526 阅读 · 0 评论 -
C++友元friend
1普通函数声明友元函数原创 2014-10-19 20:34:28 · 540 阅读 · 0 评论 -
C语言输入字符串后回车再输入字符串才能录入第一个字符串
原因都是scanf("%s\n",leader_name);其中的格式多了一个\n所以系统会登回车输入后认为这是输入完毕,再输第二个字符串时录入第一个字符串原创 2014-03-14 21:22:30 · 2262 阅读 · 0 评论 -
C语言类型
类型 定义int int p; //定义int型的变量int [ ] int p[ ]; //定义int型的数组int * [ ] int *p[ ]; //定义int型的指针数组,元素都是指针int (*) [ ] int (*p)[ ] //定义指向int原创 2014-03-19 15:42:55 · 639 阅读 · 0 评论 -
关于 C语言中typedef struct 和 struct
struct{ int x; int y;}test1;struct test{int x;int y;}test1;typedef struct test{int x;int y}text1,text2;第一个:只定义了一个test1的结构体变量,以后还想定义这种结构体的话,必须重写整个结构体。第二个:以后想定义结构体的话,可以用struct test t原创 2014-03-06 22:44:48 · 631 阅读 · 0 评论 -
linux下安装软件包
http://tukaani.org/xz/xz-4.999.9beta.tar.bz2$tar -jxvf xz-4.999.9beta.tar.bz2 //解压xz软件包$./configure --prefix=/opt/gnu/xz //配置安装路径$make $make install$ln -s /opt/gnu/xz/bin/xz /bi转载 2014-02-17 11:49:00 · 585 阅读 · 0 评论 -
redhat Linux 安装wireshark
首先挂载iso文件 如果你挂载的时候出现 no medium found 是因为 虚拟机没有连接物理光驱 选中connected 然后再挂载mount /dev/cdrom /mnt/cdrom如果这个命令不行 用这个来挂载iso文件 mount -t iso9660 /dev/cdrom /mnt/cdrom找到/mnt/cdrom转载 2013-11-01 21:11:18 · 1062 阅读 · 0 评论 -
memento c++
#include#include#include class Memento{ public: char name[64]; int hp; int mp; Memento() { } Memento(char *name,int hp,int mp) { strcpy(this->name,name); this->hp=hp; thi原创 2017-07-25 11:20:07 · 401 阅读 · 0 评论