- 博客(19)
- 收藏
- 关注
原创 [linux驱动]设备驱动模型相关(一)——示例代码
1,以下为示例代码:#include #include #include #include #include MODULE_LICENSE("Dual BSD/GPL");static char *Version = "2.0.1";static int my_match(struct device *dev, struct device_driver *driver){
2014-02-28 10:46:00 774
原创 [linux]进程(四)——进程的创建
11,进程的创建linux的进程创建可以分为两个步骤,分别为fork()和exec()函数,fork()负责创建一个子进程,和父进程的差别仅仅是PID PPID以及一些统计量,exec()函数负责读取可执行文件载入地址空间运行。fork()函数原型pid_t fork(void); 子进程返回0,父进程返回子进程的PID,fork()函数一次创建两次返回。fork()函数的实现
2014-02-26 20:01:13 2279
原创 [数据结构]双链表
typedef struct NODE{ struct NODE *fwd; struct NODE *bwd; int value;}Node;双链表的根节点的bwd指针指向双链表的最后一个节点,fwd指针指向双链表的第一个节点,双链表的value字段为空以下程序是将一个值插入到一个有序的双链表中,如果链表中已经有和该值相同的节点则不插入#include #inc
2014-02-25 19:09:55 800
原创 [linux]进程(三)——idle进程
9,linux进程切换进程切换:基本概念:进程上下文:当一个进程在执行时,CPU的所有寄存器中的值、进程的状态以及堆栈中的内容被称为该进程的上下文。当内核需要切换到另一个进程时,它需要保存当前进程的所有状态,即保存当前进程的上下文,运行于进程上下文的进程是可以被抢占的。硬件上下文:进程恢复执行前必须载入寄存器的一组数据称为硬件上下文linux内核在进程切换的时候是并不区
2014-02-25 11:27:31 10937
原创 [linux内存]linux内存学习(一)
1,内存中各个地址范围的含义0-3G的地址范围:BSS段:存一些未被初始化的全局变量数据段:存已经被初始化的全局变量代码段:代码的可执行文件,一般为只读堆:maoolc()或者new()申请的段,给程序员使用,地址向高地址范围增长栈:函数参数等,由系统自动分配释放,地址向低地址范围增长mmap区间:3-4G的空间是内核空间,用户空间的代码不能访问到。
2014-02-25 09:51:38 756
原创 [linux]进程(二)--进程地址空间
7,linux进程命名空间的概念linux的命名空间属于操作系统级虚拟化,各个命名空间互相隔离,互相不可见,不同命名空间的进程PID可以相同,因此从操作系统层面看可能有相同的uid和pid父命名空间同时还可以包含子命名空间,子命名空间不知道父命名空间的存在,但是父命名空间知道子命名空间的存在命名空间的实现:为了task_struct的精简,内核引入了struct nsproxy
2014-02-24 17:33:43 923
原创 [数据结构]hash算法
hash函数hash函数主要是利用了数组的快速定位特性,以及键值根据哈希函数来转换。hash函数:根据key,计算出key对应记录的储存位置,position = f(key),不同的输入可能对应同样的输出。hash函数的冲突处理:链地址法:对Hash表中每个Hash值建立一个冲突表,即将冲突的几个记录以表的形式存储在其中问题实例:海量数据分析以下代码转自点击打开链接#in
2014-02-24 10:18:31 719
原创 [数据结构]快速排序
代码如下:static int LookBase(int *src,int lef,int rig){ DEBUG(); int i,l,r; l = lef; r = rig; int base = src[l]; while(l < r) { while((l=base)) { r--; } src[l] = src[r]
2014-02-24 09:31:41 551
原创 [C++]C++学习笔记(一)
1,cin cout#include int main(){ std::cout << "Enter two numbers:" << std::endl; int v1, v2; std::cin >> v1 >> v2; std::cout << "The sum of " << v1 << " and " << v2 << " is " << v1 + v2
2014-02-23 13:50:51 673
原创 [C++]C++的一些小程序
程序如下所示:#include #include #include class String{public: String(const char*str = NULL); String(const String &another); ~String(); String& operator =(const String &rhs);private: char* m_dat
2014-02-22 14:58:42 586
原创 [linux]进程(一)--基本概念
1,进程的基本概念简单来说进程就是执行期的程序,但是同时进程也不至于此,它还包括了其它资源(如打开的文件,挂起的信号等等)Linux是一个多任务多用户操作系统,一个任务(task)就是一个进程(process),即进程=任务,在linux系统中,进程和线程共享一系列的资源(地址空间,文件,信号,名字空间等)
2014-02-21 19:52:10 911
原创 [linux基础]linux的权限知识
1,S权限位的作用android的init.rc中有如下一句mkdir /data/nvram 2770 root nvram以上这句中2770中的2含义就是s权限位。作用是在/data/nvram目录下创建的文件的user和group和/data/nvram是完全一样的。
2014-02-20 17:36:08 1537
原创 [C语言基础]C语言操作符优先级
优先级运算符含义要求运算对象的个数结合方向1()[]->.圆括号下标运算符指向结构体成员运算符结构体成员运算符自左至右2!逻辑非运算符1(单目运算符)自右至左~
2014-02-19 11:07:52 561
原创 [C语言基础]一些C语言小程序(一)
1,请把从1到1000的数打印出来,不能使用任何的循环语句或是条件语句#include void func(int i);void func(int i){printf("%d",i);int a = i/i-1;func(i--);}int main(){func(1000);return 0;}
2014-02-18 19:22:41 692
原创 shell脚本学习笔记
1,文件名字命名为*.sh,后缀sh表明这是一个Bash脚本文件2,shell脚本的第一行如下: #!/bin/sh #!/bin/sh告诉系统其后路径所指定的程序即是解释此脚本文件的Shell程序3, 写完脚本后保存文件,然后将文件变成可执行文件 chmod +x test.sh4,以下是一个简单的shell脚本示例: #!/bin/sh echo "hello worl
2014-02-18 15:09:16 623
原创 [linux命令]linux常用命令学习
1,linux文件重命名的命令 mv命令,mv命令只能对单个文件重命名 mv fromfile targetfile 如果targetfile已经存在的话,那么会覆盖以前的内容 rename命令 rename命令可以集合通配符使用,rename主要用于批量重命名 rename的语法格式是: rename fromtofile 这个命令有三个参数,分别是 from
2014-02-18 14:34:55 610
原创 Makefile学习笔记
Makefile知识简单总结 以下大部分信息来自跟我一起写Makefile 一个简单的例子如下; int main() { char str[20]; scanf("%[^r]",str); printf("%s\n",str); return 0; } target : test.o cc -o target test.o
2014-02-18 11:15:41 594
原创 [Python]python学习笔记(一)——语法
python的关键知识点:1、解释型语言:是边读源程序边执行。而编译型语言则是将源代码编译成目标代码后执行。以后在执行时就不需要编译了2, python是区分大小写的,3,python是根据行缩进来区别模块和函数的,所以对代码的风格要求比较高,依赖缩进来区分代码层次,最好使用tab键缩进4,常量名所有字母大写,由下划线来连接。变量名最好使用小写字母,不带m和g,类名首字母大写,模块
2014-02-17 19:25:02 588
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人