自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(22)
  • 资源 (8)
  • 收藏
  • 关注

转载 linux内核register_chrdev_region()系列函数

内核提供了三个函数来注册一组字符设备编号,这三个函数分别是 register_chrdev_region()、alloc_chrdev_region() 和 register_chrdev()。其中,register_chrdev_region()是为提前知道设备的主次设备号的设备分配设备编号。alloc_chrdev_region() 是动态分配主次设备号。register_chrdev()

2013-05-27 09:53:47 737

转载 linux下进程间通信的几种主要手段

管道(Pipe)及有名管道(named pipe):管道可用于具有亲缘关系进程间的通信,有名管道克服了管道没有名字的限制,因此,除具有管道所具有的功能外,它还允许无亲缘关系进程间的通信;信号(Signal):信号是比较复杂的通信方式,用于通知接受进程有某种事件发生,除了用于进程间通信外,进程还可以发送信号给进程本身;linux除了支持Unix早期信号语义函数sigal外,还支持语义符合Posi

2013-05-24 16:01:08 497

原创 net_device结构

结构体定义位置:linux/include/linux/netdevice.h1.net_device代表所有的网络设备,包括其硬件和软件配置net_device: Each network device is represented in the Linuxkernel by this data structure, which contains information aboutbot

2013-04-27 09:17:50 892

原创 linux用户空间与内核的接口

1.内核提供给用户层的接口:    1)systemcall   2)procfs命令:virtual filesystem,编译选项:Filesystems Pseudo filesystems/proc file system support   3)sysctl命令:用户层查看和修改系统变量,并将结果保存在/proc/sys目录下,编译选项:General setupSysctl

2013-04-27 09:17:04 769

原创 linux内核的通知链机制

一、为什么需要通知链:   linux内核的各个子系统之间往往互相关联,一个子系统产生或者侦测到的事件,其它的子系统往往也很感兴趣,因此linux内核采用了通知链机制实现内核的子系统之间的通信需求。值的注意的是,通知链机制仅用于内核内部的子系统之间的通信,内核与用户空间的通信依赖于其它机制,如系统调用、procfs、sysctl、ioctl等。   以下图为例,路由器RT直接连接网络A、B

2013-04-27 09:16:27 975

转载 restrict关键字

本文摘自: http://www.oschina.net/question/32294_53573restrict是C99引入的新关键字,它用于声明只会通过该指针对其指向的内存空间进行读写操作,以便编译器能进行更好的优化。我们来看一个跟memcpy/memmove类似的问题。下面的函数将两个数组中对应的元素相加,结果保存在第三个数组中。voidvector_add(cons

2013-04-27 09:15:32 430

原创 非格式化输入输出getc、fgetc、getchar、putc、fputc、putchar

标签:杂谈

2013-04-27 09:14:31 899

原创 linux进程的启动和终止

1. 进程正常终止的5种方式:1)main函数返回2)进程调用exit:进入内核前先进行一些清理工作,如调用各种终止程序(这些终止处理程序可以由atexit注册),关闭标准I/O流等3)进程调用_exit/_Exit:立即进入内核注:exit和_Exit由ISO C说明,_exit由POSIX.1说明4)最后一个线程从其启动例程返回5)最后一个线程调用pthread_exi

2013-04-27 09:13:04 1212

原创 C程序的环境变量列表

该图截自《UNIX环境高级编程》

2013-04-27 09:12:22 572

原创 C程序的存储空间布局

1.C程序的组成部分:1)程序正文/机器指令:可共享2)初始化数据段:存储全局变量/静态变量等,存储在该数据段中的数据是在程序中已赋初值的如: int maxcount = 99;3)非初始化数据段:存储全局变量/静态变量等,存储在该数据段中的数据是在程序中未赋初值的,程序开始执行之前,内核会将该数据段中的变量赋值为0或空指针(即我们所谓的全局变量的自动初始化)如: long

2013-04-27 09:11:14 501

原创 C语言细节

1.strlen计算字符串长度时不包括终止字符null,sizeof则包括在内2.atexit函数      int  atexit(void (*func)(void))   1)注册的func由exit自动调用   2)调用顺序与注册顺序相反   3)注册多次的函数将被调用多次   4)ISOC要求系统必须至少支持32个终止处理程序3.ISO C和POS

2013-04-27 09:10:30 529

转载 进程创建:fork、vfork、clone

转自:http://blog.csdn.net/zjg555543/article/details/7419098在Linux中主要提供了fork、vfork、clone三个进程创建方法。 在linux源码中这三个调用的执行过程是执行fork(),vfork(),clone()时,通过一个系统调用表映射到sys_fork(),sys_vfork(),sys_clone(),再在这三个函数中

2013-04-27 09:09:44 1061

转载 Linux内核 hlist_head/hlist_node结构解析

内核中的定义:struct hlist_head {    structhlist_node *first;};struct hlist_node {    structhlist_node *next, **pprev;};这个数据结构与一般的hash-list数据结构定义有以下的区别:1)首先,hash的头节点仅存放一个指针,也就是first指针,指向的

2013-04-27 09:08:56 584

转载 ELF文件格式概要介绍

转自:http://blog.csdn.net/yyt7529/article/details/4245298ELF文件有三种类型:可重定位文件:也就是通常称的目标文件,后缀为.o。共享文件:也就是通常称的库文件,后缀为.so。可执行文件:本文主要讨论的文件格式,总的来说,可执行文件的格式与上述两种文件的格式之间的区别主要在于观察的角度不同:一种称为连接视图(LinkingView),一种称为

2013-04-27 09:06:08 864

转载 ELF文件格式详解

ARM的可执行文件的格式是ELF格式文件,下文对ELF格式做个详细的介绍。序言1. OBJECT文件   导言   ELF头(ELF Header)   Sections   String表(String Table)   Symbol表(Symbol Table)   重定位(Relocation)2. 程序装载与动态连接   导言   Program

2013-04-27 09:05:24 954

转载 linux task_struct的结构注释

1. 调度数据成员(1) volatile long states;表示进程的当前状态:? TASK_RUNNING:正在运行或在就绪队列run-queue中准备运行的进程,实际参与进程调度。?TASK_INTERRUPTIBLE:处于等待队列中的进程,待资源有效时唤醒,也可由其它进程通过信号(signal)或定时中断唤醒后进入就绪队列run-queue。?TASK_UNINT

2013-04-27 09:03:34 547

转载 任务状态段(Task State Segment)

转自:http://www.cnblogs.com/guanlaiy/archive/2012/10/25/2738355.html任务状态段(Task State Segment)是保存一个任务重要信息的特殊段。任务状态段描述符用于描述这样的系统段。任务状态段寄存器TR的可见部分含有当前任务的任务状态段描述符的选择子,TR的不可见的高速缓冲寄存器部分含有当前任务状态段的段基地址和段界限等

2013-04-27 09:02:40 2906

原创 进程控制

1.共享库:减小可执行文件大小,增加程序的运行时开销;开销发生在程序第一次被执行时,或者共享库函数第一被调用时;gcc组织程序使用共享库(将共享库静态链接到可执行文件):gcc-static ex01.c2.进程ID的延迟重用:已终止进程的进程ID可以被重用,但是一般系统都实现了延迟重用算法,以防止将新进程误认为是已终止的先前进程3.进程ID 0通常是调度进程,成为交换进程swapper;

2013-04-27 09:01:34 641

原创 网络编程基础

1.服务器进程如果需要绑定保留端口号,如80 for HTTP,必须以超级用户运行,否则bind将返回错误:PermissionDenied;2.每个子进程只有一个父进程,且可以使用函数getppid获取父进程的进程ID;3.每个父进程可以有多个子进程,且没有函数可以直接获取子进程的进程ID,但是可以通过记录fork返回值的方式获取,如保存在一个数组/链表中;4.并发服务器的一般实现:

2013-04-27 08:59:46 537

原创 信号

1.信号又称软中断2.信号的发送 1)一个进程发送给另一个进程(或自身)  2)内核发给进程3.不可被捕捉、不能忽略的信号:SIGKILL、SIGSTOP4.信号处理函数执行期间,后续递交的相同信号将被阻塞;另外还可以通过在调用sigaction函数时设置sa_mask参数的值指定其它被阻塞的信号,如,将其设置为0则表示只阻塞相同信号5.承上,如果在阻塞期间,一个信号被

2013-04-27 08:58:55 614

转载 函数指针变量

在C语言中,一个函数总是占用一段连续的内存区(位于程序的代码区),而函数名就是函数所占内存区的首地址。我们可以把函数的这个首地址(或称入口地址)赋予一个指针变量,使该指针变量指向该函数。然后通过指针变量就可以找到并调用这个函数。我们称这种指向函数的指针变量称为"函数指针变量"。   函数指针变量定义的一般形式为:      类型说明符 (*指针变量名)();  对比普通指针变量定义的一

2013-04-27 08:57:36 846

转载 Linux tcpdump命令详解

简介用简单的话来定义tcpdump,就是:dump the traffic on anetwork,根据使用者的定义对网络上的数据包进行截获的包分析工具。 tcpdump可以将网络中传送的数据包的“头”完全截获下来提供分析。它支持针对网络层、协议、主机、网络或端口的过滤,并提供and、or、not等逻辑语句来帮助你去掉无用的信息。 实用命令实例默认启动tcpdump

2013-04-27 08:54:13 481

C++程序设计语言(特别版)书及源代码

《C++程序设计语言》一书,及书中的源代码

2011-07-04

麻省理工算法导论课后习题答案

麻省理工学院,算法导论一书的课后习题答案

2011-06-22

数字图像处理习题答案答案(冈萨雷斯).pdf

数字图像处理第二版中文版(冈萨雷斯),课后习题答案,pdf格式

2009-05-24

Thinking in Java Annotated Solutions Guide, Revision 1.0 - Contents

This is the annotated solution guide for Thinking in Java, 2nd edition by Bruce Eckel.

2009-05-24

C++必知必会英文版

C++学习经典教程 C++必知必会引文版 chm格式

2009-05-22

C++必知必会 中文版

C++学习经典教程《C++必知必会》 中文版 PDF格式

2009-05-22

VC++技术内幕第五版英文版chm

VC++6.0技术内幕第五版英文版的电子书,是CHM格式的,非常小,浏览也方便

2009-05-20

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除