struct

2024/4/25 14:16:56

广度优先搜索 简单举例(maze)

maze Time Limit:1000MS Memory Limit:65536KTotal Submit:290 Accepted:103 Description 500年前,Jesse是我国最卓越的剑客。他英俊潇洒,而且机智过人^_^。 突然有一天,Jesse心爱的公主被魔王抓走,并困在了一个巨大的迷宫中…

WINCE的内存配置

WINCE的内存配置 WINCE的内存(包括SDRAM及FLASH)的配置包含两个方面:源代码(包括C和汇编)中的定义,及系统配置文件CONFIG.BIB中的定义。源代码中需要定义内存的物理及虚拟地址,大小,并初始化名为OEMAddressTable的结构…

Linux C中struct的初始化允许部分初始化并且支持乱序

在阅读GNU/Linux内核代码时,我们会遇到一种特殊的结构初始化方式。该方式是某些C教材(如谭二版、K&R二版)中没有介绍过的。这种方式称为指定初始化(designated initializer)。 下面我们看一个例子,Lin…

内存管理内幕-动态分配的选择、折衷和实现

http://www.ibm.com/developerworks/cn/linux/l-memory/ 为什么必须管理内存 内存管理是计算机编程最为基本的领域之一。在很多脚本语言中,您不必担心内存是如何管理的,这并不能使得内存管理的重要性有一点点降低。对实际编程来说,理解您的内…

linux 中解析命令行参数

用Getopt在Linux下获取命令行参数的方法 用Getopt在Linux下获取命令行参数的方法 [摘要] 如果getopt()找不到符合的参数则会印出错信息,并将全域变量optopt设为“?”字符,如果不希望getopt()印出错信息,则只要将全域变opterr设为0即可。[关键…

3、时间编程

时间类型:、 Coordinated universal time (UTC):世界标准时间,也就是格林威治时间(greenwich mean time ,GMT). Calendar time:日历时间,从1970年1月1日0点到此时经过的秒数 时间显示: Char *as…

必备绝技——hook大法( 中 )

标 题:【原创】必备绝技——hook大法( 中 )作 者: Lvg时 间: 2007-04-09,23:37链 接: http://bbs.pediy.com/showthread.php?t42422【文章标题】: 必备绝技——hook大法( 中 )【文章作者】: LvG【作者邮箱】: LvG2008gmail.com【作者声明】: 只是感兴趣,没有其他目…

POJ-2492 A Bug's Life

题目链接:http://poj.org/problem?id2492 题目大意: 给你n个bug和m个他们之间的信息。如给出1和3,表示1喜欢3。当然给出的说明他们是异性。判断有没有出现一种情况,比如1喜欢2,2喜欢3,1又喜欢3,这明显是矛盾&#xff…

LUID_AND_ATTRIBUTES

LUID_AND_ATTRIBUTES 结构体LUID_AND_ATTRIBUTES 代表一个本地唯一标示符(LUID)和它的属性。 typedef struct _LUID_AND_ATTRIBUTES { // luaa LUID Luid; DWORD Attributes; } LUID_AND_ATTRIBUTES; 成员 Luid 标识了一个LUID值 Attributes 标识了LUID属性.这个值包含了多达32…

POJ-3349 Snowflake Snow Snowflakes【Hash】

题目链接:http://poj.org/problem?id3349 题目大意: 给你n个6条边的雪花的信息,问这些雪花当中是否有相同的一对。 相同的定义是:长度相同,且符合相同的顺序(顺时针或者逆时针),…

Linux子进程对父进程资源“写时拷贝”

Linux子进程对父进程资源“写时拷贝” 转:http://tech.ddvip.com/2009-02/1234347359108317.htmlLinux的fork()使用写时拷贝 (copy- on-write)页实现。写时拷贝是一种可以推迟甚至避免拷贝数据的技术。内核此时并不复制整个进程的地址空间,而是让父子进程…

HDU-2544 最短路【最短路】

题目链接&#xff1a;http://acm.hdu.edu.cn/showproblem.php?pid2544 最近复习了最短路径的算法&#xff0c;就写了4个版本的测试。正好是模板题&#xff0c;就果断A之。。。 Dijkstar版本&#xff1a; #include<iostream> #include<cstdio> #include<cstrin…

关于零长度数组

struct test { int inode; char name[0]; }; 这样定义后sizeof&#xff08;struct test&#xff09; 一直是4&#xff0c; name这个变量要是赋值的话&#xff0c; 其地址比test高4字节的地方 &#xff0c;所以这样就方便结构体的使用者灵活使用&#xff0c;一般每次alloc多一…

HDU-3635 Dragon Balls

题目链接&#xff1a;http://acm.hdu.edu.cn/showproblem.php?pid3635 题目大意&#xff1a; 初始时&#xff0c;有n个龙珠&#xff0c;编号从1到n&#xff0c;分别对应的放在编号从1到n的城市中。 现在又2种操作&#xff1a; T A B&#xff0c;表示把A球所在城市全部的龙珠…

数据同步算法研究

1、引言  基于LAN或WAN的网络应用之间进行数据传输或者同步非常普遍&#xff0c;比如远程数据镜像、备份、复制、同步&#xff0c;数据下载、上传、共享等等&#xff0c;最为简单的做法自然就是对数据进行完全复制。然而&#xff0c;数据在网络上来回被复制多次后就会存在大量…

poj 2653 pick up stick 链表与计算几何

又一次用链表AC题目&#xff0c;激动啊。。看来链表也不是那么难懂&#xff0c;但是用时要小心&#xff0c;分清楚p是谁&#xff0c;p->next是谁&#xff0c;这就像数组中的i&#xff0c;j等&#xff0c;明白了是谁的指向&#xff0c;链表当然也就不怎么难懂了。。加油。。\…

tcflush 功能

tcflush() 丢弃要写入引用的对象&#xff0c;但是尚未传输的数据&#xff0c;或者收到但是尚未读取的数据&#xff0c;取决于 queue_selector 的值&#xff1a;TCIFLUSH   刷新收到的数据但是不读 TCOFLUSH  刷新写入的数据但是不传送 TCIOFLUSH  同时刷新收到的数据但是不…

HDU-1009 FatMouse' Trade

题目链接&#xff1a;http://acm.hdu.edu.cn/showproblem.php?pid1009 题目大意&#xff1a; 一只老鼠有m个猫粮&#xff0c;仓库有猫把守&#xff0c;给它想要的猫粮就成比例的给你javabean。问最多能得到多少猫粮。 解题思路&#xff1a; 这道题水的不能行&#xff0c;但…

POJ-2513 Colored Sticks【并查集+Trie+欧拉路】

题目链接&#xff1a;http://poj.org/problem?id2513 题目大意&#xff1a; 有N根木棒&#xff0c;一根木棒有2头&#xff0c;我们把每头涂色&#xff08;相同或不同&#xff09;&#xff0c;如果2根木棒有相同颜色的一端就可以连接&#xff0c;颜色全部不同就不能连接&#…

13、linux网络编程基础

Socket Linux中的网络编程通过socket()实现&#xff0c;socket是一种文件描述符。 Socket有三种类型&#xff1a; 流式套接字&#xff08;SOCK_STREAM&#xff09; 流式套接字可以提供可靠的&#xff0c;面向连接的通讯流&#xff0c;他使用TCP协议。TCP保证了数据传…

C语言宏定义使用技巧

C语言宏定义使用技巧 写好C语言&#xff0c;漂亮的宏定义很重要&#xff0c;使用宏定义可以防止出错&#xff0c;提高可移植性&#xff0c;可读性&#xff0c;方便性 等等。下面列举一些成熟软件中常用得宏定义……1&#xff0c;防止一个头文件被重复包含 #ifndef COMDEF_H #de…

第8章 基 本 概 念

第8章 基 本 概 念 本章意在解释对理解C至关重要的一些概念,C程序员将对这些概念中的很多内容非常熟悉,但存在一些细微的差别可能导致意想不到的程序结果,包含了以下论题: * 术语 * 说明和定义 * 范围 * 程序和连接 * 开始和结束 * 存储类 * 类型 附加的论题包括l值、…

第15章 派 生 类

第15章 派 生 类 这一章解释如何用派生类产生可扩展的程序。 本章包含如下一些主题: * 派生类综述 * 多重基类 * 虚拟函数 * 抽象类 * 范围规则总结 派生类概述 利用继承机制,新的类可以从已有的类中派生(有关继承见下一节“单一继承”的开始)。那些用于派生的类称为这…

结构体指针说

今天来讨论一下C中的内存管理。 记得上周在饭桌上和同事讨论C语言的崛起时&#xff0c;讲到了内存管理方面 我说所有指针使用前都必须初始化&#xff0c;结构体中的成员指针也是一样 有人反驳说&#xff0c;不是吧&#xff0c;以前做二叉树算法时&#xff0c;他的左右孩子指针…

Linux设备模型之platform总线

platform是一个虚拟的总线驱动&#xff0c;但是它在工程的驱动开发中很重要&#xff0c;特别是在嵌入式设备中&#xff0c;由于很多设备都没有在真实的总线上&#xff0c;像dm9000网卡&#xff0c;因此需要一个总线来管理&#xff0c;platform便是最好的选择。 出处:http://er…

C语言宏定义##连接符和#符的使用

C语言中如何使用宏C&#xff08;和C&#xff09;中的宏&#xff08;Macro&#xff09;属于编译器预处理的范畴&#xff0c;属于编译期概念&#xff08;而非运行期概念&#xff09;。下面对常遇到的宏的使用问题做了简单总结。 关于#和## 在C语言的宏中&#xff0c;#的功能是将…

poj 3304 Segments(利用叉积求是否存在直线与所给线段相交)

//以下为原blog搬迁过来的内容 【题目大意】&#xff1a;给出n条线段&#xff0c;问你是否存在一条直线&#xff0c;使得每个线段与该直线至少有一个交点。 【解题思路】&#xff1a;没有思路&#xff0c;没有思路&#xff0c;还是没有思路。然后开始无止境的yy。 因为点的个数…

写一个块设备驱动(2)

第2章 --------------------------------------------------- | 写一个块设备驱动 | --------------------------------------------------- | 作者&#xff1a;赵磊 | | email: zhaoleiddhotmail.co…

凸包加sort

已验证语法&#xff1a;Graham_scan(Point PointSet[],Point ch[],int n,int &len);参数&#xff1a;PointSet[]&#xff1a;输入的点集ch[]&#xff1a;输出的凸包上的点集&#xff0c;按照逆时针方向排列n&#xff1a;PointSet中的点的数目len&#xff1a;输出的凸包上的…

struct 用法的示例

源程序&#xff1a;系统调用 #include <unistd.h> #include <sys/types.h> #include <sys/stat.h> #include <stdio.h> #include <fcntl.h> #include <time.h> int main() { struct stat buf;// 关于文件状态信息的机构体 int fdopen(&…

深入分析Memcached的线程接入模型---上

memcached是一个分布式的内存cache系统&#xff0c;目前被大量地运用于各种各样的站点中&#xff0c;以不断提高站点的总体访问性能&#xff0c;而另外一方面&#xff0c;memcached的使用是非常简单的&#xff0c;可以说&#xff0c;使用门槛很低&#xff0c;这也许是造成memca…

深入分析Memcached的线程接入模型---中

三&#xff0c;在main()函数中&#xff0c;初始化main_thread的event_base实例&#xff0c;见memcached.c //定义main_thread的event_base实例static struct event_base *main_base;//下面代码略…/* initialize main thread libevent instance , 初始化事件API */main_base …

边界对齐问题

结构体边界对齐 &#xfeff;许多实际的计算机系统对基本类型数据在内存中存放的位置有限制&#xff0c;它们会要求这些数据的首地址的值是某个数k(通常它为4或8)的倍数&#xff0c;这就是所谓的内存对齐&#xff0c;而这个k则被称为该数据类型的对齐模数(alignment modulus)。…

VC++中LogFont设置字体

LOGFONT是Windows内部字体的逻辑结构&#xff0c;主要用于设置字体格式&#xff0c;其定义如下&#xff1a;typedef struct tagLOGFONTA{LONG lfHeight;LONG lfWidth;LONG lfEscapement;LONG lfOrientation;LONG lfWeight;BYTE lfItalic;BYTE lfUnderline;BYTE lfStrikeOut;BYT…

HDU-1236 排名

题目链接&#xff1a;http://acm.hdu.edu.cn/showproblem.php?pid1236 解题思路&#xff1a; 水题&#xff0c;主要是学习了结构体中字符串按字典序排序的方法。。。。 代码如下&#xff1a; #include<iostream> #include<cstdio> #include<cstring> #in…

poj 1279 Art Gallery(求多边形核的面积+半平面交)

【题目大意】&#xff1a;顺时针给出n个点&#xff0c;求多边形核的面积 【解题思路】&#xff1a;半平面交模版测试 【代码】&#xff1a; #include <iostream> #include <cstdio> #include <cstring> #include <algorithm> #include <vector> …

hdoj 1757 A Simple Math Problem(转化为矩阵+矩阵乘法)

【题目大意】&#xff1a; If x < 10 f(x) x. If x > 10 f(x) a0 * f(x-1) a1 * f(x-2) a2 * f(x-3) …… a9 * f(x-10); And ai(0<i<9) can only be 0 or 1 . 先给出ai,和x,m&#xff0c;求f(x)%m 【解题思路】&#xff1a; 根据题目意思构造矩阵&#…

poj 1039 Pipe(直线与线段交+枚举直线)

//以下为原blog搬迁过来的内容 【题目大意】&#xff1a;给出n个水管的上接点&#xff08;下接点的坐标为上接点的横坐标&#xff0c;和纵坐标减一&#xff09;&#xff0c;然后问你从管的左端射进一束光&#xff0c;在管里能够跑多远&#xff0c;输出到达最远点的横坐标。 【…

poj 1296 Noise Effect(判断线段相交,并求交点)

//以下为原blog搬迁过来的内容 【题目大意】&#xff1a;给出n组数据&#xff0c;每组数据四个数描述两条直线&#xff0c;判断直线重合&#xff0c;平行&#xff0c;或者相交。 【解题思路】&#xff1a;按照重合&#xff0c;平行&#xff0c;相交的顺序依次判断就是。主要是…

poj 3348 Cows(凸包+叉积求面积)

【题目大意】&#xff1a;给出一个多边形&#xff0c;求其凸包面积&#xff0c;答案/50取整输出 【解题思路】&#xff1a;水题&#xff0c;凸包模版叉积求多边形面积 【代码】&#xff1a; #include <iostream> #include <cstdio> #include <cstring> #incl…

Linux内核驱动模块编写概览——ioctl, class_create, device_create

如果你对内核驱动模块一无所知&#xff0c;请先学习内核驱动模块的基础知识。如果你已经入门了内核驱动模块&#xff0c;但是仍感觉有些模糊&#xff0c;不能从整体来了解一个内核驱动模块的结构&#xff0c;请赏读一下这篇拙文。如果你已经从事内核模块编程N年&#xff0c;并且…

poj 2704 Line of Sight(数学型计算几何)

【题目大意】给出房子的坐标表示为(x1,x2,y)代表房子所在二维坐标系上的位置&#xff0c;给出路的坐标表示(rx1,rx2,ry)同样表示路在二维坐标系上的位置。然后给出n个障碍物&#xff0c;每个障碍物的坐标表示是(a[i].x1,a[i].x2,a[i].y)&#xff0c;问在路上避过障碍物可以连续…

对于 std::vectorT , 当T没有赋值运算符函数的时候,如何调用vector push_back?

这个问题是在stackoverflow发现的&#xff1a; http://stackoverflow.com/questions/12908398/can-placement-new-and-vectordata-be-used-to-replace-elements-in-a-vector 我是对讨论做一个整理&#xff0c;如下。 1.代码片段 #include <iostream> 2 #include <…

数据的字节对齐(data structure alignment)

1.1.1 为什么需要字节对齐 1、处理器的差异 有的处理器&#xff0c;不容许在字节未对齐的地址上访问字或者是多个字的数据。比如sun sparc cpu&#xff0c;不容许在奇数字节上访问一个字&#xff0c;否则会出现异常。 2、出于CPU读取内存数据效率的考虑。 CPU访问内存的时…

matlab指令汇总

转自&#xff1a;http://chianelxie.blog.sohu.com/50354171.html A a abs 绝对值、模、字符的ASCII码值 acos 反余弦 acosh 反双曲余弦 acot 反余切 acoth 反双曲余切 acsc 反余割 acsch 反双曲余割 align 启动图形对象几何位置排列工具 all 所有元素非零为真 angle 相角 ans…

结构体嵌套指针应注意的问题

在c语言中内存的开辟和回收是一个很重要的问题&#xff0c;但是如果在编程中使用到结构体类型就显得更为重要了&#xff0c;但是如果结构体中有嵌套了指针就变得更加更加的重要了&#xff0c;看起来这是一个很小的点&#xff0c;但是这也是一个很容易被忽略的点&#xff0c;下面…

Oracle JDBC 11gR1的一些特性

1.支持JSE6和JDBC4.0&#xff0c;不再支持java.sql.SQLXML类型。jse6是通过ojdbc6.jar,ojdbc6_g.jar,ojdbc6dms.jar,ojdbc6dms_g.jar文件来支持的。2.不再支持oracle.jdbc.driver。从9.0.1开始的每个release都推荐使用oracle.jdbc。这一天终于到来&#xff0c;在11g中&#xff…

写一个块设备驱动 (3)

第3章 --------------------------------------------------- | 写一个块设备驱动 | --------------------------------------------------- | 作者&#xff1a;赵磊 | | email: zhaoleiddhotmail.co…

秒字符设备

使用内核定时器的秒字符设备 秒字符设备 秒字符设备也是字符驱动&#xff0c;所以与之前的字符设备驱动程序的框架类似&#xff0c;模块编译&#xff0c;模块加载与卸载也与内核模块的编译&#xff0c;加载卸载一致。秒字符设备驱&#xff08;second&#xff09;的实现&#xf…

LINUX动态链接库高级应用

在《LINUX下动态链接库的创建与应用》一文中,我介绍了LINUX动态链接库的基本知识.其要点是:用户根据实际情况需要,利用dlopen,dlsym,dlclose等动态链接库操作函数,装入指定的动态链接库中指定的函数,然后加以执行.程序中使用很少的动态函数时,这样的做法尚可.如果程序需要调用大…

C++学习笔记1--类和对象

1.类成员默认的是private&#xff0c;一般为了明确&#xff0c;把private显式地写上了&#xff1b; 2.类与结构体作比较&#xff1a;struct成员默认的是public,结构体存储纯粹的数据类型&#xff0c;并且这些数据类型没有私有的特性&#xff1b; 3.位于类定义里面的方法会自动…

linux设备驱动总线模型实现

设备总线驱动模型看了很多文章&#xff0c;都没能理解&#xff0c;后面看到了这篇讲的还可以&#xff0c;分享给大家 出处:http://ericxiao.cublog.cn/ 一&#xff1a;前言 Linux设备模型是一个极其复杂的结构体系&#xff0c;在编写驱动程序的时候&#xff0c;通常不会用到这…

SOCKET编程简单总结

SOCKET编程总结 sockets&#xff08;套接字&#xff09;编程有三种&#xff0c;流式套接字&#xff08;SOCK_STREAM&#xff09;&#xff0c;数据报套接字&#xff08;SOCK_DGRAM&#xff09;&#xff0c;原始套接字&#xff08;SOCK_RAW&#xff09;&#xff1b;基于TCP的soc…

字符设备 register_chrdev_region()、alloc_chrdev_region() 和 register_chrdev()。

内核中所有已分配的字符设备编号都记录在一个名为 chrdevs 散列表里。该散列表中的每一个元素是一个 char_device_struct 结构&#xff0c;它的定义如下&#xff1a;static struct char_device_struct {struct char_device_struct *next; // 指向散列冲突链表中的下一个元素…

围圈报数-(链表实现)

围圈报数 输入数据m和n&#xff0c;表示m个人&#xff0c;编号为1&#xff0c;2&#xff0c;3..........m,围城一个圆圈&#xff0c;从1开始报数&#xff0c;报到n的人就退出&#xff0c;下一个人接着重新从1开始报数&#xff0c…

结构体是个什么玩意

结构体 1.为什么需要结构体? 为了表示一些复杂的事物,而普通的基本数据类型无法满足要求. 2.什么是结构体? 把一些基本的数据类型组合在一起,形成一个新的复合数据类型,就叫做结构体. 3.如何定义一个结构体? 第一种方式 struct Student {int age;float score;char se…

关于sizeof()的一些思考

原始连接&#xff1a;http://lostinmymind.blogchina.com/index.html关键字&#xff1a;sizeof&#xff0c;字节对齐&#xff0c;多继承&#xff0c;虚拟继承&#xff0c;成员函数指针 前向声明&#xff1a; sizeof&#xff0c;一个其貌不扬的家伙&#xff0c;引无数菜鸟竟折…

Kdump之kexec源码分析

知道kexec还是在linuxsir上看到一篇介绍其应用的帖子, 经常用kexec快速启动内核的步骤如下:(1).kexec -l <kernel-image> --append"<command-line-options>" [--initrdxxxxxxxxxxx一般是要的,不过某些情况下可选]例如: kexec -l /boot/vmlinuz-2.6.31 -…

POJ 3522 变形kruskal算法及并查集的实现

此题对kruskal算法做了变形&#xff0c;不是求最小生成树&#xff0c;而是求最大边权值与最小边权值之差最小的生成树&#xff0c;同样可以用kruskal算法的实现方法&#xff0c;采用并查集。如果求最小生成树要将边加入到堆中&#xff0c;并且不需要遍历所有的生成树情况 //此题…

POJ 3624 0-1背包问题 动态规划

第一道背包问题&#xff0c;0-1背包&#xff0c;参考网上一位大牛写的做的。状态方程&#xff1a;dp[i][w] max{dp[i-1][w], dp[i-1][w-obj[i].wei] obj[i].val]}&#xff0c;但这样会超内存&#xff0c;需要一个空间复杂度的优化将dp改为一维&#xff0c;这招看来以后得常用…

链表之循环链表、双向链表

一、循环链表 循环链表是与单链表一样&#xff0c;是一种链式的存储结构&#xff0c;所不同的是&#xff0c;循环链表的最后一个结点的指针是指向该循环链表的第一个结点或者表头结点&#xff0c;从而构成一个环形的链。 循环链表的运算与单链表的运算基本一致。所不同的有以下…

Kdump之kdump分析

说Kexec是基于kexec机制工作的,但关于Kdump到底是怎么实现的&#xff0c;比如将第二个内核怎么加载到具体的保留位置&#xff0c;第一个内核crash后怎么传需要的elfcorehdr和memmap参数给第二个内核&#xff0c;另外第二个内核是怎么调用makdedumpfile来过滤压缩页的,网上一些资…

linux内核中断处理的工作队列workqueue机制

linux内核中断处理的工作队列workqueue机制 工作队列&#xff08;workqueue&#xff09;是另外一种将工作 推后执行的形式&#xff0c;它和我们前面讨论的小任务有所不同。工作队列可以把工作推后&#xff0c;交由一个内核线程去执行&#xff0c;也就是说&#xff0c;这个下半部…

写一个块设备驱动(5)

第5章 --------------------------------------------------- | 写一个块设备驱动 | --------------------------------------------------- | 作者&#xff1a;赵磊 | | email: zhaoleiddhotmail.co…

编写Linux网卡设备驱动(下)

转载出处&#xff1a; http://arttech.us/y-2011/writing-network-device-driver-b.html 本文介绍基于Realtek 8139芯片PCI接口的网卡驱动程序。我选择了Realtek芯片有两个原因&#xff1a;首先&#xff0c;Realtek提供免费的芯片技术手册&#xff1b; 第二&#xff0c;芯片相…

network 最小生成树 Kruskal 算法 poj 1861 zoj 1542

#include<iostream>#include<algorithm>#include<cstdio>using namespace std;const int MAXN1001;const int MAXM15001;struct edge{int u,v,w;}edges[MAXM];int parent[MAXN];int n,m;int i,j;int ans[MAXN],ai,maxedge;int num;void UFset()//初始化{for(…

Linux下thread编程(二)

作者&#xff1a; Sam&#xff08;甄峰&#xff09; sam_codehotmail.com thread属性&#xff1a; pthread_create()中&#xff0c;第二个参数&#xff08;pthread_attr_t&#xff09;为将要创建的thread属性。通常情况下配置为NULL&#xff0c;使用缺省设置就可以了。 但了解…

struct、union、enum and sizeof

struct 1、结构体和数组的区别&#xff1a;可以再结构体里声明数组&#xff1b;结构体变量可以相互赋值&#xff0c;而数组不行。 2、struct与class的区别&#xff1a;class的成员访问权限默认是private&#xff0c;而struct成员的是public。 3、结构体的定义&#xff1a; …

利用udev、sys动态创建linux设备结点

在Linux 2.6内核中&#xff0c;devfs被认为是过时的方法&#xff0c;并最终被抛弃&#xff0c;udev取代了它。Devfs的一个很重要的特点就是可以动态创建设备结点。那我们现在如何通过udev和sys文件系统动态创建设备结点呢&#xff1f; 下面通过一个实例&#xff0c;说明udev、s…

华清远见与您共享:Linux驱动中的platform

作者&#xff1a;李智敏,华清远见嵌入式学院上海中心讲师。 从Linux2.6内核起&#xff0c;引入一套新的驱动管理和注册机制&#xff1a;platform_device 和 platform_driver 。Linux 中大部分的设备驱动&#xff0c;都可以使用这套机制&#xff0c;设备用 platform_device 表示…

常用序列化技术

一&#xff0c;什么是数据序列化&#xff1f;说得直白一点&#xff0c;就是数据在内存的对象形式和在网络传送形式的双向转换&#xff0c;本质是协议的转换技术。一个内存对象&#xff0c;通过序列化成数据流后可以很方便的进行网络传输或者可以很方便的进行磁盘存储。而把磁盘…

linux NAND驱动之三:6410平台上的NAND驱动加载

1&#xff0c;platform_driver 的定义和注册 在s3c_nand.c中&#xff0c; static struct platform_driver s3c6410_nand_driver { .probe s3c6410_nand_probe, .remove s3c_nand_remove, .suspend s3c_nand_suspend, …

C#结构体应用实例

目录 定义 结构有以下特点 用法实例 定义 在 C# 中,结构体是值类型数据结构。它使得一个单一变量可以存储各种数据类型的相关数据。struct 关键字用于创建结构体。 结构有以下特点 结构可带有方法、字段、索引、属性

posix 条件变量

条件变量是一中线程同步机制&#xff0c;需要和 pthread_mutex_t配合使用才能完成任务&#xff0c;典型的可以应用在“生产者、消费者”模型中。 条件变量的数据类型&#xff1a;pthread_cond_t 配合的函数有&#xff1a; 1、pthread_cond_t结构的初始化、销毁函数 #include &l…

RGB与YUV----摘自《DirectShow实务精选》

小知识&#xff1a;RGB与YUV----摘自《DirectShow实务精选》 作者&#xff1a;陆其明计算机彩色显示器显示色彩的原理与彩色电视机一样&#xff0c; 都是采用R&#xff08;Red&#xff09;、G&#xff08;Green&#xff09;、B&#xff08;Blue&#xff09;相加混色的原理&…

poj 2398 Toy Storage(判断点在多边形内,叉积)

//以下为原blog搬迁过来的内容 【题目大意】&#xff1a;给出一个矩形的左上角的点(x1,y1)以及右下角的点(x2,y2)&#xff0c;并给出n条线段&#xff0c;线段表示为(l,y1),(r,y2)&#xff0c;用于将矩形切割成n1块&#xff0c;分别标记为0到n。再给出m个点&#xff0c;求包含t…

linux网络---select 函数 实现I/0复用

select函数&#xff1a; 系统提供select函数来实现多路复用输入/输出模型。原型&#xff1a; #include <sys/time.h> #include <unistd.h> int select(int maxfd,fd_set *rdset,fd_set *wrset,fd_set *exset,struct timeval *…

关于C实现C++的多态性

用C实现C的继承(结构加指针实现)<VC编程难点剖析> #include "stdio.h" #include "stdlib.h" //定义函数指针类型DISPLAYINTEGER&#xff0c;指向返回值为void&#xff0c;参数列表为(const int)的函数 typedef void( *DISPLAYINTEGER)(const int)…

12.3 串行通信与重叠I/O

Win 32系统为串行通信提供了全新的服务。传统的OpenComm、ReadComm、WriteComm、CloseComm等函数已经过时&#xff0c;WM_COMMNOTIFY消息也消失了。取而代之的是文件I/O函数提供的打开和关闭通信资源句柄及读写操作的基本接口。 新的文件I/O函数(CreateFile、ReadFile、WriteFi…

9、linux进程间通信之信号量

信号量 信号量&#xff08;又名&#xff1a;信号灯&#xff09;与其他进程间通信方式不大相同&#xff0c;主要用途是保护临界资源。进程可以根据它判断是否能够访问某些共享资源。除了用于访问控制外&#xff0c;还可以用于进程同步。 。 如图&#xff1a;当A要访问S时&#…

C# struct class 在Marshal.SizeOf 的区别

struct 和 class 的区别 最重要的就是 value 和 object 区别了. 但是最近发现另外一个有趣的现象,但是很重要. 一个工程中,因为需要各种结构,于是在开始使用了 struct , 但是觉得有点麻烦,值传递的话,消耗很多,又不喜欢 ref (因为我喜欢写泛型函数) 于是采用了 class , 接下…

常见的Linux内核中内存分配函数

1.原理说明 Linux内核中采 用了一种同时适用于32位和64位系统的内 存分页模型&#xff0c;对于32位系统来说&#xff0c;两级页表足够用了&#xff0c;而在x86_64系 统中&#xff0c;用到了四级页表&#xff0c;如图2-1所示。四级页表分别为&#xff1a; * 页全局目录(Page Glo…

POJ-1456 Supermarket【贪心】

题目链接&#xff1a;http://poj.org/problem?id1456 题目大意&#xff1a; 有N件商品&#xff0c;分别给出商品的价值和销售的最后期限&#xff0c;只要在最后日期之前销售处&#xff0c;就能得到相应的利润&#xff0c;并且销售该商品需要1天时间。 问销售的最大利润。 …

TOKEN_PRIVILEGES

TOKEN_PRIVILEGES contains information about a set of privileges for an access token. typedef struct _TOKEN_PRIVILEGES { ULONG PrivilegeCount; // 数组 原素的个数 LUID_AND_ATTRIBUTES Privileges[ANYSIZE_ARRAY]; //数组.类型为LUID_AND_ATTRIBUTES } TOKEN_PRIVILE…

linux select详解

select系统调用是用来让我们的程序监视多个文件句柄(file descriptor)的状态变化的。程序会停在select这里等待&#xff0c;直到被监视的文件句柄有某一个或多个发生了状态改变。 文件在句柄在Linux里很多&#xff0c;如果你man某个函数&#xff0c;在函数返回值部分说到成功后…

长篇连载--arm linux演艺

滚滚长江东四水&#xff0c;浪花淘净英雄。 大家好&#xff0c;许多人和我一样&#xff0c;正在苦读linux源代码&#xff0c;希望有照一日&#xff0c;宝典在手&#xff0c;天下我有。小弟不才&#xff0c;也读了两年&#xff0c;写的几首歪诗。从本级开始&#xff0c;把我所理…

关于这个野指针

今天有饭傻&#xff0c;只是先声明指针&#xff0c;却没为他们赋值。 #include <time.h> #include <stdio.h> #include <sys/time.h> int main( void) { struct tm *local; struct timeval tv1,tv2; time_t t; ttime(NULL); locallocaltime(&t);…

linux access()函数和readdir()函数

1 linux access()函数和readdir()函数 1.1 access() access函数的原型如下&#xff1a; int access(const char *pathname, int mode); 此函数是用来获得调用进程对pathname所指向的文件(regular)或者是目录(directory)的访问权限。 pathname: 文件或者是…

LINUX 多线程 及为结构体malloc内存

线程的创建&#xff1a; #include <unistd.h>#include <stdlib.h>#include <stdio.h>#include <pthread.h>struct member{ int a;char *s;};void *create(void *arg){struct member *temp;temp(struct member *)arg;printf("member->a%d \n&qu…

xen 中的libxc(libxenctrl)库

简介 libxc是在/xen/tools/中的名称&#xff0c;在许多地址看到的是libxenctrl&#xff0c;其实是一个意思&#xff0c;但与libxen不同。libxc是一个C语言库&#xff0c;它提供了一些简单易用的API&#xff0c;使用户程序可以方便的和Hypervisor进行通信。 它的工作原理很简…

USB设备描述符

一个USB设备有一个设备描述符&#xff0c;设备描述符里面决定了该设备有多少种配置&#xff0c;每种配置描述符对应着配置描述符&#xff1b;而在配置描述符中又定义了该配置里面有多少个接口&#xff0c;每个接口有对应的接口描述符&#xff1b;在接口描述符里面又定义了该接口…

《LINUX下动态链接库的创建与应用》

大家都知道&#xff0c;在windows系统中有很多的动态链接库(以.dll为后缀的文档&#xff0c;dll即dynamic link library)。这种动态链接库&#xff0c;和静态函数库不同&#xff0c;他里面的函数并不是执行程式本身的一部分&#xff0c;而是根据执行程式需要按需装入&#xff0…

用 indent 进行代码格式化之格式规范

用 indent 进行代码格式化 1. introduce indent2. Indent参数规范一个范例&#xff0c;胜过前言万语。用 indent 格式化代码&#xff0c;再从格式化前后的格式变化&#xff0c;来学习格式化规范。 可以用不同的参数调用 indent&#xff0c; 1. introduce indent What is Ind…

Linux驱动修炼之道-SPI驱动框架源码分析(下)

努力成为linux kernel hacker的人李万鹏原创作品&#xff0c;为梦而战。转载请标明出处 http://blog.csdn.net/woshixingaaa/article/details/6574224 这篇文档主要介绍spi数据传输过程。 当应用层要向设备传输数据的时候&#xff0c;会通过ioctl向设备驱动发送传输数据的…

linux NAND驱动之二:NAND存储原理

在我们开始NAND 驱动编写之前&#xff0c;至少应该知道&#xff1a;数据在NAND 中是怎样存储的&#xff0c;以及以怎样的方式从NAND 中读写数据的。 1&#xff0c;NAND 的存储结构和操作方式 这方面的资料可以从任意一种NAND 的datasheet 中得到&#xff0c;而且事实上…

gpio_request()函数

其原型为 int gpio_request(unsigned gpio, const char *label) 先说说其参数&#xff0c;gpio则为你要申请的哪一个管脚&#xff0c;label则是为其取一个名字。其具体实现如下&#xff1a; int gpio_request(unsigned gpio, const char *label) { struct gpio_desc *desc…

sockaddr与sockaddr_in结构体简介

sockaddr与sockaddr_in结构体简介2007-09-01 20:56【标 题】&#xff1a;sockaddr与sockaddr_in结构体简介 【关键字】&#xff1a;sockaddr,sockaddr_in 【来 源】&#xff1a;ttp://blog.csdn.net/lihengzk/archive/2006/11/26/1415312.aspx sockaddr与sockaddr_in结构体…

表达式二叉树

总结了一下常见的表达式求值问题&#xff0c;写了一个模板&#xff0c;输入为中缀式时&#xff0c;用中缀式建立表达式二叉树&#xff0c;可以打印前缀式和后缀式&#xff0c;可以用前缀式计算&#xff0c;也可以用后缀式计算。 代码如下&#xff1a; #include<iostream>…

NYOJ-21 三个水杯【隐式图搜索】

题目链接&#xff1a;http://acm.nyist.net/JudgeOnline/problem.php?pid21 解题思路&#xff1a; 隐式图搜索。我们需要对广搜到基本框架了解。 因为范围为100&#xff0c;最多有1001001001000000种情况&#xff0c;所以可以用广搜暴力来枚举每一种状态。 这个图是一个有…

线段与直线相交

//Point p1,p2是线段的端点。Point p3&#xff0c;p4是直线上的两个点。typedef struct {double x,y; } Point;int lineintersect(Point p1,Point p2,Point p3,Point p4) {Point tp1,tp2,tp3;tp1.xp1.x-p3.x;tp1.yp1.y-p3.y;tp2.xp4.x-p3.x;tp2.yp4.y-p3.y;tp3.xp2.x-p3.x;tp3.…

如何在C++获得系统时间(转)

//方案— 优点&#xff1a;仅使用C标准库&#xff1b;缺点&#xff1a;只能精确到秒级 #include <time.h> #include <stdio.h> int main( void ) { time_t t time(0); char tmp[64]; strftime( tmp, sizeof(tmp), "%Y/%m/%d %X %A 本年第%j天 %z",local…

linux c语言 select函数用法

linux c语言 select函数用法Select在Socket编程中还是比较重要的&#xff0c;可是对于初学Socket的人来说都不太爱用Select写程序&#xff0c;他们只是习惯写诸如 connect、accept、recv或recvfrom这样的阻塞程序&#xff08;所谓阻塞方式block&#xff0c;顾名思义&#xff0c…

Linux获取网页源码的几种方法 linux爬虫程序

第一个为利用linux下的工具来获取网页源码&#xff0c;我用的是Wget&#xff0c;也可以使用Curl&#xff0c;curl的话更加的灵活&#xff0c;可以设置很多参数 C代码 //通过Wget来获取网页 string GetHtmlByWget(string url) { //获取待下载网页文件名 string …

USB设备驱动程序导读

随着USB设备的不断增加&#xff0c;我们这些开发人员也就多了对USB设备进行驱动程序开发的工作。但是对于很多初学者来说&#xff0c;存在以下三个困难&#xff1a; 一是对WinCE的驱动程序结构了解得太少&#xff0c;没办法得心应手的专注于驱动程序的开发工作&#xff…

poj 2653 Pick-up sticks(判断线段是否相交)

//以下为原blog搬迁过来的内容 【题目大意】&#xff1a;给出n条木棍&#xff0c;然后依次摆放在桌面上&#xff0c;每次摆放的木棍的起始点和终止点给定&#xff0c;求最上面的木棍的标号 【解题思路】&#xff1a;线段判相交就是了&#xff0c;水题 【代码】&#xff1a; #in…

zoj 3500 Electron Cloud(圆缺公式)

【题目大意】&#xff1a;给出两个球心坐标及半径&#xff0c;求球交 【解题思路】&#xff1a;圆缺公式~~模版测试 【代码】&#xff1a; #include <iostream> #include <cstdio> #include <cstring> #include <string> #include <cmath> #incl…

编写Linux网络设备驱动(上)

本文介绍基于Realtek 8139芯片PCI接口的网卡驱动程序。我选择了Realtek芯片有两个原因&#xff1a;首先&#xff0c;Realtek提供免费的芯片技术手册&#xff1b; 第二&#xff0c;芯片相当便宜。 本文介绍的驱动程序是最基本的&#xff0c;它只有发送和接收数据包功能&#xf…

DSP2812结构体取地址问题

DSP2812结构体取地址问题 刚刚看同事做了2812网络通讯&#xff0c;在接收函数里声明了一个结构体在去这个结构体的地址 比如Struct A ; int *p (int* ) &A P的值始终为0&#xff1b;而且下边的for循环变量值也为0而且不变。经检查发现结构体应该声明为公共变量这样取地…

《深入理解Linux网络内幕》学习笔记三:第七章 组件初始化内核架构

宏标记 linux内核中绝大多数初始化函数和变量都使用了各种各样的宏标记&#xff0c;形如; static int __init pci_porc_init(void){ ... } static char version[] __devinitdatadrv_name".." module_init(...) 其中__init,module_init,__devinitdata就是宏标…

Windows API串口编程参考

&#xff08;一&#xff09;Windows API串口通信编程概述 Windows环境下的串口编程与DOS环境下的串口编程有很大不同。Windows环境下的编程的最大特征之一就是设备无关性&#xff0c;它通过设备驱动程序将Windows应用程序同不同的外部设备隔离。Windows封装了Windows的通信机制…

(转)谱聚类(Spectral Clustering)

广义上来说&#xff0c;任何在算法中用到SVD/特征值分解的&#xff0c;都叫Spectral Algorithm。 Spectral Clustering&#xff0c;中文通常称为“谱聚类”。由于使用的矩阵的细微差别&#xff0c;谱聚类实际上可以说是一“类”算法。 Spectral Clustering 和传统的聚类方法&…

poj 1066 Treasure Hunt(判断线段相交)

//以下为原blog搬迁过来的内容 【题目大意】&#xff1a;给定一个矩形&#xff0c;和矩形内的墙&#xff0c;矩阵内有一个金矿&#xff0c;问你从矩阵外面进去直到金矿要至少穿越多少墙。 【解题思路】&#xff1a;一拿到题就没头没脑的枚举了所有边上的点&#xff0c;然后再直…

memset ,memcpy 和strcpy 的根本区别#include string.h

Memset 用来对一段内存空间全部设置为某个字符&#xff0c;一般用在对定义的字符串进行初始化为‘ ’或‘/0’&#xff1b;例:char a[100];memset(a, /0, sizeof(a));memset可以方便的清空一个结构类型的变量或数组。 如&#xff1a;struct sample_struct{ char csName[16];…

深入双数组Trie(Double-Array Trie)

什么是Double Array Trie Double Array Trie是TRIE树的一种变形&#xff0c;它是在保证TRIE树检索速度的前提下&#xff0c;提高空间利用率而提出的一种数据结构&#xff0c;本质上是一个确定有限自动机(deterministic finite automaton&#xff0c;简称DFA)。 所谓的DFA就是一…

mini2440的pwm驱动程序和测试程序详解

一 pwm 驱动程序 位置: 内核/drivers/char/mini2440_pwm.c 代码注解 #include <linux/module.h> #include <linux/kernel.h> #include <linux/fs.h> #include <linux/init.h> #include <linux/delay.h> #include <linux/poll.h> #inclu…

linux kernel 中的 setup_irq和request_irq

讲解的很详细,转载下. Linux 内核提供了两个注册中断处理函数的接口&#xff1a;setup_irq和request_irq。这两个函数都定义在kernel/irq/manage.c里。 /* * Internal function to register an irqaction - typically used to * allocate special interrupts that are part …

联 合(union) 结构

联 合(union) 1. 联合说明和联合变量定义 联合也是一种新的数据类型, 它是一种特殊形式的变量。 联合说明和联合变量定义与结构十分相似。其形式为: union 联合名{ 数据类型 成员名; 数据类型 成员名; ... } 联合变量名; 联合表示几个变量公用一个内存位置, 在不…

C语言struct字节对齐总结

最近不少同学开始找工作&#xff0c;很多关于C语言和C的细节问题被重新揪出来称为热门话题。关于C语言里struct字节对齐的问题&#xff0c;网上查了一些结果&#xff0c;发现不是很全面(一般都没有关于struct里出现位字段时的总结)&#xff0c;这里总结一下。 字节对齐的原因&a…

C语言结构体内存对齐

C语言中结构体内存对齐为什么要内存对齐如何对齐结构体对齐为什么要内存对齐 内存中存放数据的时候要有一定的规则&#xff0c;这么做得根本原因是要减少CPU访问内存的次数。举个例子&#xff0c;int类型为4个字节&#xff0c;存放int类型的内存的起始地址就是4的倍数&#xf…

hdu 1195 Open the Lock bfs

题意&#xff1a;有一个四位数字的字符串&#xff0c;要求将初始数字串改变成目标数字串&#xff0c;允许的操作有两种&#xff1a; 1、将每一位加1或减1操作&#xff0c;1减1操作变成9&#xff0c;9加1操作变成1&#xff1b; 2、交换相邻的两个字符&#xff1b; 每一种操作…

Linux内核 Ramdisk(initrd)机制

转自&#xff1a;http://blog.csdn.net/ruixj/article/details/3772752 摘要:对于Linux用户来说&#xff0c;Ramdisk并不陌生&#xff0c;可是为什么需要它呢&#xff1f;本文对Ramdisk在内核启动过程中的作用&#xff0c;以及它的内部机制进行深入介绍。标题1. initrd 和 init…

tcp listen调用和accept调用

在看listen的代码之前.我们也先来看相关的数据结构: inet_connection_sock它包含了一个icsk_accept_queue的域,这个域是一个request_sock_queue类型,.我们就先来看这个结构: request_sock_queue也就表示一个request_sock队列.这里我们知道,tcp中分为半连接队列(处于SYN_RECV…

C++里TRUE和true DWORD和HWND区别

1.C里大写TRUE和小写true区别 true是bool型的&#xff1b; TRUE是int型的&#xff0c;VC里这个是ms自己定义的&#xff1b; C规定不允许只通过返回类型不同区别两个函数 2.而”DWORD"和“HWND"分别指什么&#xff1f; DWORD类型表示“双字”&#xff0c;也就是四…

关于位域bit fields

&#xff08;摘自网络&#xff09; Q: I came across some structure declarations with colons and numbers next to certain fields, like this: struct record {char *name;int refcount : 4;unsigned dirty : 1;};What gives? A: Those are bit-fields; the number give…

C 中常用到的宏

C 中常用到的宏有&#xff1a; 01: 防止一个头文件被重复包含 #ifndef COMDEF_H #define COMDEF_H //头文件内容 #endif 02: 重新定义一些类型 防止由于各种平台和编译器的不同,而产生的类型字节数差异,方便移植。 typedef unsigned char boolean; /* Boolean val…

I2C设备与驱动的关联

在Linux操作系统中&#xff0c;驱动程序的加载分为两种&#xff1a;内核启动时自动加载和用户手动加载&#xff1b;硬件设备也可以采用两种方式添加到系统中&#xff1a;在系统启动前及系统运行时的热插拨。下面&#xff0c;我们以arm体系结构下的at91处理器中的I2C控制器为例&…

Linux内核模块LKM的动态加载技术分析

转载自&#xff1a;http://blog.csdn.net/sailor_8318/archive/2008/09/20/2954380.aspx 1 为什么需要LKM&#xff1f; Linux 就是通常所说的单内核&#xff08;monolithic kernel&#xff09;&#xff0c;即操作系统的大部分功能都被称为内核&#xff0c;整个系统内核都…

arm linux 从入口到start_kernel 代码分析——head.S分析——5

arm linux 从入口到start_kernel 代码分析 - 5 (2008-07-30 16:06:09) 转载标签&#xff1a; it 分类&#xff1a;kernel 4. 调用平台特定的 __cpu_flush 函数 当 __create_page_tables 返回之后 此时,一些特定寄存器的值如下所示:r4 pgtbl (page table 的物理基…

poj 3347 Kadj Squares(扩大数据运算的典型应用+映射)

//以下为原blog搬迁过来的内容 【题目大意】&#xff1a;给出矩形的变长&#xff0c;确保矩形从左往右摆放&#xff0c;问摆放完毕后从上往下看可以看见多少个矩形。 【解题思路】&#xff1a;将矩形的边长映射到x轴上&#xff0c;变成一个线段的覆盖的问题。可惜&#xff0c;做…

POJ 3070 Fibonacci数列 矩阵乘法及乘幂求法

可以先推算一下&#xff0c;会发现m0,m1,m2&#xff0c;m3等为方阵的乘幂&#xff0c;其第1行第2列就是Fibonacci数列的项&#xff0c;关键是如何求矩阵的乘幂呢&#xff1f; 分奇数幂和偶数幂两种情况 A(2)^n因为方阵的乘法有结合律&#xff0c;所以A(2)^nA(2)^(n/2)*A(2)^(…

poj 1228 Grandpa's Estate(凸包+判凸包边上的点数)

【题目大意】&#xff1a;给出n个凸包上的点(凸包上还有一一些其他的点丢失了)&#xff0c;问能否用这些点唯一的确定一个凸包。 【解题思路】&#xff1a;看懂题目大意是第一步。头20分钟一直不知道给定的点是凸包上的点&#xff0c;恶心了很久还是一点思绪都没有。如果给定的…

linux 工作队列 补充

走入Linux的殿堂已经有一年有余了&#xff0c;在这里我想将Linux的各种实现机制分析一遍&#xff0c;一方面对自己来说也是温故而知新&#xff0c;另一方面&#xff0c;促进大家的交流&#xff0c;最好能够给大家一些抛砖引玉的启迪。我是硬件出身&#xff0c;搞硬件已经好多年…

linux kernel里的setup_irq和request_irq

讲解很详细, Linux 内核提供了两个注册中断处理函数的接口&#xff1a;setup_irq和request_irq。这两个函数都定义在kernel/irq/manage.c里。 /* * Internal function to register an irqaction - typically used to * allocate special interrupts that are part of the ar…

Matlab读取.xml文件并写入struct

1.官方函数 xmlread读取 XML 文档并返回文档对象模型节点 但是这个函数得到的文档对象模型节点中的内容无法查看 于是官方给出了一个将XML文件读入结构体数组中的函数 parseXML.m function theStruct parseXML(filename) % PARSEXML Convert XML file to a MATLAB structu…

android系统中的log定向

http://blog.csdn.net/knock/article/details/5511255为了调试&#xff0c;必须要将log怎么打印的搞清楚&#xff0c;于是有了以下的分析。我们通常在程序中插入LOGD(..),LOGE(..)之类的语句&#xff0c;但什么情况下可以查看这些打印消息呢&#xff1f;首先&#xff0c;来到定…

C++中new一个动态数组(内置类型和自定义类型的区别)

在学习数据结构与算法的时候&#xff0c;T *p new T[n]的算法复杂度为Θ(n)&#xff0c;而int *p new int[n]的算法复杂度为Θ(1)。 C primer的动态内存的讲解没有关于这一点的解释&#xff0c;自己测试了一下&#xff1a; #include<iostream> using namespace std;s…

第16章 成员访问控制

第16章 成员访问控制 在C中,用户可以说明成员数据和成员函数的访问级别。共有三种访问级别:公共的、保护的和私有的。这一章解释访问控制如何运用于类类型对象以及派生类。 本章包括如下主题: * 类成员的访问控制 * 访问指示符 * 基类的访问指示符 * 友元 * 保护的成员访…

求两直线的交点

求两直线的交点,有交点输出交点。没有输出是平行还是同一条直线。。A fun(s1,e1);//求A&#xff0c;B直线的交点。 B fun(s2,e2); void IsPoint(Lin A,Lin B) {if(fabs(A.a)<eps)A.a 0;if(fabs(A.b)<eps)A.b 0;if(fabs(A.c)<eps)A.c 0;if(fabs(B.a)<eps)B.a …

class、interface、struct的区别

1 struct和class有什么区别 1.1默认的继承访问权限 Struct是public的&#xff0c;class是private的。 你可以写如下的代码&#xff1a; struct A { char a; }; struct B:A { char b; } 这个时候B是public继承A的。如果都将上面的struct改成class&#xff0c;那么B是pr…

GCC属性

gcc扩展功能极多&#xff0c;__attribute__是gcc的关键字&#xff0c;用以描述变量属性&#xff0c;gcc.info中都有详细介绍。下面举几例内核中常见的:__attribute__((regparm(0))) int printk(const char * fmt, ...) __attribute__ ((format (printf, 1, 2)));禁止printk使用…

enum的解释说明

enum的解释说明 在实际问题中&#xff0c;有些变量的取值被限定在一个有限的范围内。例如&#xff0c;一个星期内只有七天&#xff0c;一年只有十二个月&#xff0c;一个班每周有六门课程等等。如果把这些量 说明为整型&#xff0c;字符型或其它类型显然是不妥当的。为此&…

结构体的存储分配问题

边界对齐要求 struct ALIGN {char a;int b;char c; }; 那么这样的结构将会花费&#xff11;&#xff12;个字节&#xff08;因为int 类型是占用了&#xff14;个字节的&#xff0c;char类型占用&#xff11;个字节&#xff0c;所以边界对齐原则&#xff0c;需要&#xff11;&…

linux进程间通信之消息队列

上周因课题的需要&#xff0c;写了一个进程间使用消息队列通信的程序。之所以&#xff0c;用因为消息队列是随内核存在的&#xff0c;即使进程退出它仍然存在 。消息队列的这种特点正适合我的需要。下面是来自CSDN博客上的一篇文章&#xff0c;转自http://blog.csdn.net/liran…

Linux Device和Driver注册过程,以及Probe的时机

田海立CSDN 2011/08/26 Linux 2.6的设备驱动模型中&#xff0c;所有的device都是通过Bus相连。device_register() / driver_register()执行时通过枚举BUS上的Driver/Device来实现绑定&#xff0c;本文详解这一过程。这是整个LINUX设备驱动的基础&#xff0c;PLATFORM设备&…

ubuntu安装QTE的问题

PC所用 Linux系统版本&#xff1a;Ubuntu8.10 Qt/Embedded版本&#xff1a;qt- embedded-linux-opensource-src-4.4.3 Qt/X11版本&#xff1a;qt-x11-opensource-src-4.4.3 &#xff08;这两个版本时目前最新的&#xff0c;且在官网 上都有下载&#xff09; 整个安装过程&#…

Windows Rootkit 技术分析

现在很多人对rootkit认识不够&#xff0c;可以说空白。而此文的目的就是让大家认识rootkit→了解rootkit。也让一些想研究它的人把这篇文章当作一个参考或是入门级的指导。************************************************************转载请保留文章完整&#xff0c;谢谢&am…

poj 3335 Rotating Scoreboard(判断多边形是否有核+半平面交)

【题目大意】&#xff1a;顺时针给出n个点&#xff0c;判断多边形是否有核。 【解题思路】&#xff1a;半平面交模版测试 【代码】&#xff1a; #include <iostream> #include <cstdio> #include <cstring> #include <algorithm> #include <vector…

直接插入排序、折半插入排序、2_路插入排序

// c1.h (程序名)#include<string.h>#include<ctype.h>#include<malloc.h> // malloc()等#include<limits.h> // INT_MAX等#include<stdio.h> // EOF(^Z或F6),NULL#include<stdlib.h> // atoi()#include<io.h> // eof()#include<…

稀疏矩阵的压缩存储及其转置算法

1 什么是稀疏矩阵 有较多值相同元素或较多零元素&#xff0c;且值相同元素或者零元素分布没有一定规律的矩阵称为稀疏矩阵。 假设在mXn的矩阵中&#xff0c;有t个元素不为零&#xff0c;令ct/mXn则称为矩阵的稀疏因子&#xff0c;通常认为c<0.05时称为稀疏矩阵。 2 稀疏矩阵…

DIB(设备无关位图)编程系列(一)——基本知识和文件结构

先介绍有关位图的相关知识&#xff0c;然后在接下来的几篇文章中&#xff0c;介绍怎么编程来处理位图…… 一&#xff1a;彩色图的概念 彩色图是怎么回事呢&#xff1f;我们先来说说三元色RGB概念。 我们知道&#xff0c;自然界中的所有颜色都可以由红、绿、蓝(R&#xff0c;…

插入排序(二)— 表插入排序

上篇文章已经提到直接插入排序中&#xff0c;时间消耗在了元素间的比较次数和移动这两方面。折半插入排序可以减小比较次数&#xff0c;而表插入排序则可以避免元素移动。但它需要建立数据结构&#xff0c;并且需要额外的空间&#xff08;省时一般都耗空间&#xff0c;这个在算…

十进制数转换成x进制----栈实现

十进制数转换成x进制栈实现 题目&#xff1a;输入一个十进制数n&#xff0c;以及要求转换成的进制x&#xff0c;输出x进制下的n.用栈实现.约定输入的数为正整数,进制x为2-36,输出的x进制数有0-9十个数字及26个大写字母组成. 分析:进制转换中很简单的一个,用数n不断除x,并将商赋…

栈实现的计算器 数据结构运用

这个 代码 只能实现是一个字符 一个字符输入 具体实现 比如 执行的18*6的这样的&#xff0c;我们可以用输入字符串的形式输入 遇到操作符就 进OPTR栈 否则ach[i]-0; 然后再 将a 压入栈 具体实现 有兴趣的可以自己实现 有问题 请留言 我们来看下 实现…

matlab 获取目录下所有文件信息

matlab code 示例&#xff1a; filepath ‘*****’; 如&#xff1a;filepath Images/&#xff1b; //文件的相对路径 fdir(filepath) f 593x1 struct array with fields: name date bytes isdir datenum

写一个块设备驱动 (1)

第1章---------------------------------------------------| 写一个块设备驱动 |---------------------------------------------------| 作者&#xff1a;赵磊 || 网名&#xff1a;OstrichFly、飞翔…

阻塞、非阻塞的概念和select函数的阻塞功能

(1)阻塞block 所谓阻塞方式block&#xff0c;顾名思义&#xff0c;就是进程或是线程执行到这些函数时必须等待某个事件的发生&#xff0c;如果事件没有发生&#xff0c;进程或线程就被阻塞&#xff0c;函数不能立即返回。 例如socket编程中connect、accept、recv、recvfrom这样…

brew数据压缩的实现

最近在做手机RPG游戏&#xff0c;涉及到的数据文件和图片文件非常多&#xff0c;于是进行压缩解压缩。做下笔记摘要。很多部分参考了前人的笔记&#xff0c;感谢前人给了肩膀站站 &#xff1a;] 一、主体思路&#xff1a;1、将目标文件按GZIP格式压缩成压缩文件。2、把压缩文件…

c++公用体union、结构体struct内存分配问题

#include<iostream> #include<string> #include<stdlib.h>using namespace std;union data {char c1; //字符型占1字节int n; //整型占4字节double c2; //公用体最大基础类型是double&#xff0c;8字节&#xff0c;以8对齐&#xff0c;char c3[9…

hdoj 3660 Alice and Bob's Trip(树dp)

【题目大意】&#xff1a;给出一棵n个结点的树&#xff0c;两个人一起走&#xff0c;轮流决策。Alice目的是使最后距离最小&#xff0c;Bob则要最大。问最终走的距离能否满足区间[L,R]&#xff08;需要走到最后不能走&#xff0c;所以Alice不能不选就结束了&#xff09; 【解题…

插入排序:表插入

所谓插入排序之表排序&#xff0c;是利用静态链表的形式&#xff0c;分两步完成排序。 一&#xff0c;对一个有序的循环链表&#xff0c;插入一新的元素&#xff0c;修改每个节点的后继指针的指向&#xff0c;使顺着这个指针的指向&#xff0c;元素是有序的。在这个过程中&…

Linux 常用C函数(时间日期篇2)

Linux 常用C函数(时间日期篇2)2007-03-22 11:37asctime&#xff08;将时间和日期以字符串格式表示&#xff09; 相关函数 time&#xff0c;ctime&#xff0c;gmtime&#xff0c;localtime 表头文件 #include<time.h> 定义函数 char * asctime(const struct tm * timeptr…

详细解说hash_map

转自&#xff1a;http://www.cnblogs.com/welkinwalker/archive/2010/05/11/1732622.html 几句话道出map和hash_map的区别 1. STL map is an associative array where keys are stored in sorted order using balanced trees. While hash_map is a hashed associated container…

对opengl列主序效率更高质疑

下面程序&#xff0c;容易看出行主序在坐标点变换中效率更高 #include <WINDOWS.H>#include <IOSTREAM>using namespace std;enum MatrixIndex{Xx, Xy, Xz, Xi, // X方向Yx, Yy, Yz, Yi, // y方向Zx, Zy, Zz, Zi, // z方向Tx, Ty, Tz, Ii, // 移动};s…

traits技巧能解决什么问题

《STL源码解析》是侯杰大师翻译的著作&#xff0c;其中在Iterator一章着重介绍了traits技巧&#xff0c;认为traits技巧是搞懂的STL源码的入门钥匙&#xff0c;既然编写STL的神人们都这么重视traits&#xff0c;那么traits到底能帮助我们解决什么问题呢&#xff1f;traits的作用…

从2.4 到2.6:Linux 内核可装载模块机制的改变对设备驱动的影响

从 2.4 到 2.6&#xff0c;Linux 内核在可装载模块机制、设备模型、一些核心 API 等方面发生较大改变&#xff0c;设备驱动开发人员面临着将驱动从 2.4 移植到 2.6 内核&#xff0c;或是使驱动同时支持2.4 与 2.6 内核的任务。站在设备驱动开发人员的角度&#xff0c;驱动由一个…

VC 气泡

创建方法 CXInfoTipWhenHit* g_pInfoTip; //在入口处创建g_pInfoTip new CXInfoTipWhenHit;g_pInfoTip->Create(this);删除方法if(g_pInfoTip ! NULL){delete g_pInfoTip;g_pInfoTip NULL;}使用方法g_pInfoTip->Show(strMsg);以下是实现//头文件#pragma once/***显示…

hdoj 1221 Rectangle and Circle(判点的位置)

【题目大意】&#xff1a;给出一个平行于x轴长方形&#xff0c;和圆&#xff0c;判断其是否相交 【解题思路】&#xff1a;简单题&#xff0c;1&#xff09;判长方形四个点是否都在圆内&#xff0c;有就不相交 2&#xff09;判圆心到长方形每条边的距离是否都大于圆的半径&…

如何设置精灵|守护进程

/** ** Filename: daemon.c** Description: 守护进程** Version: 1.0* Created: 2012年04月24日 15时47分18秒* Revision: none* Compiler: gcc** Author: YOUR NAME (), * Company: ** */#include <stdio.h>…

Linux/Unix下ODBC的安装、配置与编程

本文主要内容是介绍ODBC的简单原理&#xff0c;以及如何在Linux/Unix下进行ODBC的安装、配置与编程。一、 ODBC原理ODBC 是Open Database Connect 即开放数据库互连的简称&#xff0c;它是由Microsoft 公司于1991 年提出的一个用于访问数据库的统一界面标准&#xff0c;是应用程…

STL之Set与Multiset(转)

C STL set和multiset的使用1&#xff0c;set的含义是集合&#xff0c;它是一个有序的容器&#xff0c;里面的元素都是排序好的&#xff0c;支持插入&#xff0c;删除&#xff0c;查找等操作&#xff0c;就 像一个集合一样。所有的操作的都是严格在logn时间之内完成&#xff0c;…

POJ 1065 木棍问题 贪心算法

算法分析&#xff1a;先对木棍结构体数组按照l排序&#xff0c;消除一个变量的干扰&#xff0c;然后再找w连续上升的子序列。用临时变量temp&#xff0c;遇到更大的作更新&#xff0c;且标记为0&#xff0c;采用贪心策略去找有几个连续上升的子序列 #include <iostream>…

Golang 结构体方法

这里填写标题1. Golang 结构体&方法1.1. 匿名字段1.2. 方法覆盖1.3. 值方法和指针方法1.4. 方法集1.5. 总结1. Golang 结构体&方法 对于这一章内容&#xff0c;"匿名字段"用的非常多&#xff0c;它是其声明中只有类型而没有名称的字段&#xff0c;可以以一种…

hdu_1863 畅通工程

畅通工程 题目链接&#xff1a;http://acm.hdu.edu.cn/showproblem.php?pid1863 TimeLimit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 8916 Accepted Submission(s): 3454 ProblemDescription 省政府“畅通工程”的…

HDU-1253 胜利大逃亡【三维广搜】

题目链接&#xff1a;http://acm.hdu.edu.cn/showproblem.php?pid1253 解题思路&#xff1a; 简单的三维广搜&#xff0c;把握好坐标和数组的关系。 用了输入外挂&#xff0c;然后加了几个小优化&#xff1a; 1.曼哈顿距离优化。 2.终点如果不能走&#xff0c;直接结束-1…

NYOJ-82 迷宫寻宝(一)【广搜】

题目链接&#xff1a;http://acm.nyist.net/JudgeOnline/problem.php?pid82 解题思路&#xff1a; 广搜题目。 这道题是去年做的&#xff0c;当时有人问我这道题&#xff0c;说他的程序自己测试的数据都对&#xff0c;一提交就WA&#xff0c;让我帮忙想一组特殊点的数据&am…

浅析malloc()的几种实现方式(内存管理)

浅析malloc&#xff08;&#xff09;的几种实现方式来源&#xff1a;嵌入式在线 作者&#xff1a;上海交通大学计算机科学与工程系 孙高鑫 时间&#xff1a;2007-06-22 发布人:卢春妙  malloc&#xff08;&#xff09;是C语言中动态存储管理的一组标准库函数之一。其作用…

NYOJ-3 多边形重心问题【计算几何】

题目链接&#xff1a; http://acm.nyist.net/JudgeOnline/problem.php?pid3解题思路&#xff1a;一个简单的计算几何。但是需要用到一些高中学到的向量和物理知识。我也是看了1个多小时的基础知识才A掉的。 需要知道的知识点有&#xff1a;1.叉积和点积的区别和它们引进的用途…

HDU-4145 Cover The Enemy

题目连接&#xff1a;http://acm.hdu.edu.cn/showproblem.php?pid4145 题目大意&#xff1a; 给你2个大炮和一些敌人&#xff0c;每个大炮的攻击半径为r&#xff0c;A大炮和B大炮的攻击范围分别为r1和r2。问怎样才能使r1*r1 r2*r2最小。。。 解题思路&#xff1a; 这道题刚开…

linux NAND驱动之一:内核中的NAND代码布局

在Linux 内核中&#xff0c;MTD 源代码放在/driver/mtd 目录中&#xff0c;该目录中包含chips 、devices 、maps 、nand 、onenand 和ubi 六个子目录。其中只有nand 和onenand 目录中的代码才与NAND 驱动相关&#xff0c;不过nand 目录中的代码比较通用&#xff0c;而onenand 目…

C语言中的位域的使用

一、位域 有些信息在存储时&#xff0c;并不需要占用一个完整的字节&#xff0c; 而只需占几个或一个二进制位。例如在存放一个开关量时&#xff0c;只有0和1 两种状态&#xff0c; 用一位二进位即可。为了节省存储空间&#xff0c;并使处理简便&#xff0c;&#xff23;语言又…

pthread_cond_timedwait 代替sleep

linux多线程编程&#xff0c;你还在用sleep么&#xff1f;用pthread_cond_timedwait吧 摘要&#xff1a;多线程编程中&#xff0c;线程A循环计算&#xff0c;然后sleep一会接着计算&#xff08;目的是减少CPU利用率&#xff09;&#xff1b;存在的问题是&#xff0c;如果要关闭…

Socket编程指南及示例程序

前言在一些常用的编程技术中&#xff0c;Socket网络编程可以说是最简单的一种。而且Socket编程需要的基础知识很少&#xff0c;适合初学者学习网络编程。目前支持网络传输的技术、语言和工具繁多&#xff0c;但是大部分都是基于Socket开发的&#xff0c;虽说这些“高级”的网络…

你今天volatile了吗?--准确定位

相关教程&#xff1a; 【C学习点滴】4月汇总&#xff1a;volatile&#xff0c;数组维度&#xff0c;const修饰符 【C学习点滴】4月汇总&#xff1a;volatile&#xff0c;数组维度&#xff0c;const修饰符 泛型&#xff1a;volatile——多线程程序员最好的朋友volatile修正符及…

C语言宏定义技巧(常用宏定义)

1&#xff0c;防止一个头文件被重复包含 #ifndef COMDEF_H #define COMDEF_H //头文件内容 #endif 2&#xff0c;重新定义一些类型&#xff0c;防止由于各种平台和编译器的不同&#xff0c;而产生的类型字节数差异&#xff0c;方便移植。 typedef unsigned char boolea…

POJ 3636 俄罗斯Nested Dolls 贪心二分 动态规划

首先要区分#include <cstdlib> 中的qsort与C STL algorithm中的sort&#xff0c;后者只有三个参数且比较函数写法较简单些类似于POJ 1065,差异有二&#xff0c;其一是排序方式下降&#xff0c;其二是要求下降且不相等 但是用常规的贪心会超时,用二分优化后不超时&#xf…

[算法]不使用*、/、+、-、%操作符求一个数的1/

导读&#xff1a;算法一直是程序员进阶的一道龙门&#xff0c;通常算法都是为了更高效地解决问题而创造的&#xff0c;但也有的只是出于学术性&#xff0c;并不在意其实际意义。这是近日在国外技术问答网站stackoverflow的一个热门问题&#xff0c;不知道你能给出几种解决方法&…

POJ-1182 食物链

题目链接&#xff1a;http://poj.org/problem?id1182 解题思路&#xff1a; 这道题是并查集题目中的经典。。。而且比普通并查集提高了一个档次&#xff0c;下面在基础并查集的前提上讲解并查集的真正用法。 基础回顾&#xff1a; find()函数找根结点的两种写法如下&#xff1…

POJ 1007 DNA排序求逆序数

基本思路就是求逆序数然后根据逆序数排序&#xff0c;出现的问题有&#xff1a; 1、这题出现的问题主要是对m和n总是搞混&#xff0c;而且提交出现了Runtime Error&#xff0c;这个错误一般都是由于一般都是非法访问内存&#xff08;数组越界、访问空指针、堆栈溢出&#xff0…

C# 装箱和拆箱[整理]

1、装箱和拆箱是一个抽象的概念 2、装箱是将值类型转换为引用类型 &#xff1b;拆箱是将引用类型转换为值类型 利用装箱和拆箱功能&#xff0c;可通过允许值类型的任何值与Object 类型的值相互转换&#xff0c;将值类型与引用类型链接起来 例如&#xff1a; int val 100; obje…

我所认识的EXT2(二)

EXT2中块组的划分 块组是非常重要的概念&#xff0c;首先请朋友们弄清楚分区和块组是完全不同的概念&#xff0c;分区至多只能有4个&#xff08;3个主分区和1个扩展分区&#xff0c;如果4个分区不够用&#xff0c;只能用逻辑分区&#xff09;&#xff0c;分区的作用就是对磁盘…

linux下关于结构体stat的一些应用

前言&#xff1a; 初学Linux编程&#xff0c;相信很多朋友都和我一样&#xff0c;对于在Linux中如何获得文件相关属性&#xff0c;如文件大小、最后访问&#xff08;读&#xff09;时间、最后修改&#xff08;写&#xff09;时间、创建时间或最后更改&#xff08;属性更改&…

C++/CLI语言的属性探索

本文展示了欧洲计算机开发商协会正在发展的C/CLI&#xff08;一种不同的C语言&#xff0c;它方便开发人员在微软的.NET框架下更容易地开发程序&#xff09;语言在C语言上的扩展。写这篇文章的目的并不是要建议标准C包括这部分扩展&#xff0c;也不是对C/CLI的认可&#xff0c;而…

linux下的动态库

大家都知道&#xff0c;在WINDOWS系统中有很多的动态链接库(以.DLL为后缀的文件&#xff0c;DLL即Dynamic Link Library)。这种动态链接库&#xff0c;和静态函数库不同&#xff0c;它里面的函数并不是执行程序本身的一部分&#xff0c;而是根据执行程序需要按需装入&#xff0…

关于pragma pack的用法--------------C 中的内存对齐问题(转载)

http://www.360doc.com/content/10/0124/00/722458_14261259.shtml 为了能使CPU对变量进行高效快速的访问&#xff0c;变量的起始地址应该具有某些特性&#xff0c;即所谓的“对齐”。例如对于4字节的int类型变量&#xff0c;其起始地址应位于4字节边界上&#xff0c;即起始地…

Linux2.6内核驱动移植参考

随着Linux2.6的发布&#xff0c;由于2.6内核做了新的改动&#xff0c;各个设备的驱动程序在不同程度上要进行改写。该文当列举了2.6内核同以前版本的绝大多数变化&#xff0c;可惜的是由于时间和精力有限没有详细列出各个函数的用法。   如果需要有各个函数的较为详细的的说明…

c/c++ 动态申请数组

new和delete运算符用于动态分配和撤销内存的运算符 new用法: 1. 开辟单变量地址空间 1)new int; //开辟一个存放数组的存储空间,返回一个指向该存储空间的地址.int *a new int 即为将一个int类型的地址赋值给整型指针a. 2)int *a new int(5) 作用同上,但是同时将整数赋…

POJ 3744 数学题概率题 矩阵乘幂

转的网上的解题报告http://hi.baidu.com/rpsproblem/blog/item/d2cbe67aa1d8b5fd0bd1875f.html&#xff0c;用于备战校赛 按照题目的意思&#xff0c;我们很容易推出公式&#xff1a;f[i] p*f[i-1] (1-p)*f[i-2];f[i]表示到达位置i的概率&#xff08;不是安全到达那些很复杂…

MTK平台学习--MTK笔记

MTK平台学习&#xff0d;&#xff0d;MTK笔记(ZT) MTK笔记 L4是MMI/AT和协议栈的适配层。ATCI是AT命令解析器。UEM是用于抽象如键盘、LED、通用输入/输出等基本设备&#xff0c;是用户设备模块。PHB就是电话本。SMU是安全管理单元&#xff08;SIM、STK&#xff09;。CSM是呼叫…

经典笔试题目分析

1、 用预处理指令#define 声明一个常数&#xff0c;用以表明1年中有多少秒&#xff08;忽略闰年问题&#xff09; #define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL 1) #define 语法的基本知识&#xff08;例如&#xff1a;不能以分号结束&#xff0c;括号的使用&#xff…

oracle11gR1JDBC新特性

oracle11gR1JDBC新特性 1.支持JSE6和JDBC4.0&#xff0c;不再支持java.sql.SQLXML类型。jse6是通过ojdbc6.jar,ojdbc6_g.jar,ojdbc6dms.jar,ojdbc6dms_g.jar文件来支持的。2.不再支持oracle.jdbc.driver。从9.0.1开始的每个release都推荐使用oracle.jdbc。这一天终于到来&…

LINUX 使用tcgetattr函数与tcsetattr函数控制终端二

LINUX 使用tcgetattr函数与tcsetattr函数控制终端二表6.5 c_oflag参数 键 值 说 明 CBAUD 波特率&#xff08;41位&#xff09;&#xff08;非POSIX&#xff09; CBAUDEX 附加波特率&#xff08;1位&#xff09;&#xff08;非POSIX&#xff09; CSIZE 字符长度&a…

基于C语言的学生成绩处理

学生成绩处理 #include<stdio.h> #include<string.h>/*定义结构头类型*/ typedef struct {char sno[10];char name[16];int score[4];int total;int mc; }student;/*信息录入程序*/ void sr(student stud[], int n) {int i;for (i 1; i < n; i){printf("…

Linux: fd_set用法

Linux: fd_set用法2010-04-13 23:58select()机制中提供一fd_set的数据结构&#xff0c;实际上是一long类型的数组&#xff0c;每一个数组元素都能与一打开的文件句柄(不管是socket句柄&#xff0c;还是其他文件或命名管道或设备句柄)建立联系&#xff0c;建立联系的工作由程序员…

strftime说明

转自http://www.cnblogs.com/caolisong/archive/2007/04/11/709732.html 我们可以使用strftime&#xff08;&#xff09;函数将时间格式化为我们想要的格式。它的原型如下&#xff1a; size_t strftime(char *strDest,size_t maxsize,const char *format,const struct tm *tim…

叉积求多边形面积

语法&#xff1a;resultpolygonarea(Point *polygon,int N);参数&#xff1a;*polygon&#xff1a;多变形顶点数组N&#xff1a;多边形顶点数目 返回值&#xff1a;多边形面积 注意&#xff1a; 支持任意多边形&#xff0c;凹、凸皆可 多边形顶点输入时按顺时针顺序排…

POJ-2536 Gopher II

题目链接&#xff1a;http://poj.org/problem?id2536 题目大意&#xff1a; 有n只地鼠的坐标&#xff0c;m个洞的坐标&#xff0c;地鼠的移动速度为v,在s秒以后会飞来一只老鹰要吃地鼠&#xff0c;问有多少个地鼠可能被吃。 解题思路&#xff1a; 二分图最大匹配。 匹配多…

poj 2826 An Easy Problem?!(线段交,细节题)

//以下为原blog搬迁过来的内容 【题目大意】&#xff1a;给出两条线段&#xff0c;问这两条线段能够接住多少水。 【解题思路】&#xff1a;先大概估算了一下&#xff0c;这道题一共wa了不下20次。题目的大意不难&#xff0c;难在下面几个注意点上&#xff1a; 1&#xff09;线…

C++学习之旅-结构struct

C++学习之旅-结构struct 结构在我们的编程中是非常重要的,比如假设我们要编程来存储 斯蒂芬_库里(我喜欢的篮球明星)的姓名、工资、身高、体重、平均分、三分(他三分简直爆炸)、命中率、助攻次数等等。希望能有一种数据格式可以将这些信息存储在一个单元中。没用过结构体的…

网络编程面试题答案收集(从论坛转到博客)

网络编程面试题答案收集&#xff08;从坛转到博客&#xff0c;答案基本都是自己的一些经验以及收集整理&#xff09; 1&#xff1a;tcp和udp的区别 2&#xff1a;流量控制和拥塞控制的实现机制 3&#xff1a;滑动窗口的实现机制 4&#xff1a;多线程如何同步。 5&#xff1a;进…

第3章 说明和类型

第3章 说明和类型 本章描述变量、函数和类型的说明与初始化。C语言包括一个标准数据类型的标准集。 你还可以增加自己的数据类型,称为“派生的类型”,即通过已经定义的类型说明新的类型。 讨论的主题如下: *说明概述 *存储类 *指示符 *类型修饰符 *说明符和变量说明 *…

C++中Struct与Class的区别与比较

概述 之前只知道在C中类和结构体的区别只有默认的防控属性&#xff08;访问控制&#xff09;不同&#xff0c;struct是public的&#xff0c;而class是private的。但经过上网查资料才发现&#xff0c;除了这个不同之外&#xff0c;还有很多的知识点需要掌握。下面就听我一一道来…

数据结构之顺序队列的操作(C语言)

#include <stdio.h>#include <stdlib.h>#include <string.h>#define QUEUELEN 15//数据结构的定义typedef struct {char name[10];int age;}DATA;typedef struct {DATA data[QUEUELEN];int head;int tail;}SQType;//队列的初始化SQType *SQTypeInit(){SQTy…

数据结构之顺序栈的操作(C语言)

#include <stdlib.h>#include <stdio.h>#include <string.h>#define MAXLEN 50typedef struct {char name[10];int age;}DATA;typedef struct stack {DATA date[MAXLEN1];int top;}StackType;//栈的初始化StackType *STInit(){StackType *p;if (p(StackType…

原:PHP内核源码分析:isset与 empty

声明&#xff1a;本文为斯人原创&#xff0c;全部为作者一一分析得之&#xff0c;有不对的地方望赐教。博客地址:PHP技术博客 在CSDN也会同步更新的哦.欢迎转载&#xff0c;转载请注明出处 PHP内核函数里面有提供了两个函数用来检测 变量 isset和empty 这两个有什么区别? 我们…

struct用法深入探索

本文对于struct的作用进行了很好的剖析&#xff0c;值得一看&#xff01; 1. struct的巨大作用 面对一个人的大型C/C程序时&#xff0c;只看其对struct的使用情况我们就可以对其编写者的编程经验进行评估。因为一个大型的C/C程序&#xff0c;势必要涉及一些(甚至大量)进行数据组…

八数码问题使用HashTable优化查找后的版本

在《双向广度优先搜索算法框架及八数码问题例程》一文中&#xff0c;给出了使用双向广度优先搜索算法解决八数码问题的一个 简单版本&#xff0c;查找都是线性的&#xff0c;没有优化。这里给出使用HashTable优化后的版本&#xff01; /* * Author: puresky * Date: 2010.01.…

快排 qsort详解

很多人问这个东西.我以前也看了好久,今天翻到以前学快排的时候写的练习code,基本上 能覆盖绝大部分用法了. 里面有很多地方没判断相等的情况,按道理来说相等情况下应该返回0的,这个请看代码的 时候注意.我尽量保证代码不出错了. 下面的这些说明和问题都是个人原创,没查什么资…

算法笔记:PAT Ranking(C/C++)

转眼5天过去了&#xff0c;又连着5天没有更新了&#xff01; 唉&#xff0c;时间过得真的好快&#xff0c;不知不觉就过的那么久了。 新的一天&#xff0c;要加油啊&#xff01; 今天来看看sort()函数的使用实例。 题目描述&#xff1a; 有n个考场&#xff0c;每个考场有若干数…

Pro*c的简单例子

/** pro*c编译方法&#xff1a;* 预编译 proc test.pc* 编译 gcc -o test test.c $ORACLE_HOME/lib/libclntsh.so* 作者 NinGoo* 时间 2005-6-14**/#include <stdio.h>EXEC SQL INCLUDE SQLCA;int main(){ //声明SQL变量 EXEC SQL BEGIN DECLARE SECTION; …

关于sizeof

http://www.360doc.com/content/10/0124/00/722458_14261259.shtml 为了能使CPU对变量进行高效快速的访问&#xff0c;变量的起始地址应该具有某些特性&#xff0c;即所谓的“对齐”。例如对于4字节的int类型变量&#xff0c;其起始地址应位于4字节边界上&#xff0c;即起始地…

Linux usbtouchscreen驱动分析

在Linux内核中自带USB触摸屏驱动&#xff0c;以linux-2.6.33.3\drivers\input\touchscreen.c为例&#xff0c;进行解析&#xff1a; 1.驱动加载&#xff1a; static int __init usbtouch_init(void) { return usb_register(&usbtouch_driver); //驱动注册 } 其中usbtouch…

Android在标准linux基础上对休眠唤醒的实现(二)

三、kernel层源码解析 - wakelock的重要地位 wakelock在android的休眠唤醒机制中扮演着及其重要的角色&#xff0c;主要源码位于文件:kernel/kernel/power/wakelock.c&#xff0c;kernel/include/linux/wakelock.h中。 wakelocks_init()函数所做的工作是整个wakelock可以工作起…

Android在标准linux基础上对休眠唤醒的实现(一)

说明&#xff1a; 1. Based on linux 2.6.32 and android 2.2&#xff0c;only support SDR(mem). 2. 参考文章&#xff1a; http://2695477.blog.51cto.com/blog/2685477/484751 http://www.docin.com/p-115475680.html http://blogold.chinaunix.net/u3/113927/showart_…

新版linux系统设备架构中关于电源管理方式的变更

新版linux系统设备架构中关于电源管理方式的变更 based on linux-2.6.32 一、设备模型各数据结构中电源管理的部分 linux的设备模型通过诸多结构体来联合描述&#xff0c;如struct device&#xff0c;struct device_type&#xff0c;struct class&#xff0c; struct device_dr…

标准linu休眠和唤醒机制分析(三)

五、suspend和resume代码走读 下面对suspend分的几个阶段都是按照pm test的5中模式来划分的&#xff1a;freezer、devices、platform、processors、core。 suspend第一阶段&#xff1a;freezer int enter_state(suspend_state_t state) { int error; if (!valid_state(state…

双向循环链表简单的插入、删除、修改以及查找功能的实现

1“ include include define T 1 define F 0 typedef int ElementType; typedef int Boolean; typedef struct node* Node; struct node //定义双向的结构体 { struct node* prior; ElementType value; struct node* next; }; Boolean make(Node *head);//创建…

标准linu休眠和唤醒机制分析(二)

三、pm_test属性文件读写 int pm_test_level TEST_NONE; static const char * const pm_tests[__TEST_AFTER_LAST] { [TEST_NONE] "none", [TEST_CORE] "core", [TEST_CPUS] "processors", [TEST_PLATFORM] "platform", [TEST…

标准linu休眠和唤醒机制分析(一)

说明&#xff1a; 1. Based on linux2.6.32, only for mem(SDR) 2. 有兴趣请先参考阅读&#xff1a; 电源管理方案APM和ACPI比较.doc Linux系统的休眠与唤醒简介.doc 3. 本文先研究标准linux的休眠与唤醒&#xff0c;android对这部分的增改在另一篇文章中讨论 4. 基于手上的一…

嵌入式Linux之我行——S3C2440上MMC/SD卡驱动实例开发讲解(二)

嵌入式Linux之我行——S3C2440上MMC/SD卡驱动实例开发讲解(二)&#xff08;转自&#xff1a;http://www.cublog.cn/u3/101649/showart_2232724.html&#xff09;嵌入式Linux之我行&#xff0c;主要讲述和总结了本人在学习嵌入式linux中的每个步骤。一为总结经验&#xff0c;二希…

static关键字-void和void指针-函数指针

static关键字1&#xff0e;作用于变量&#xff1a; 用static声明局部变量-------局部变量指在代码块{}内部定义的变量&#xff0c;只在代码块内部有效&#xff08;作用域&#xff09;&#xff0c;其缺省的存储方式是自动变量或说是动态存储的&#xff0c;即指令执行到变量定义…

WIN32API函数实现串口

在工业控制中&#xff0c;工控机&#xff08;一般都基于Windows平台&#xff09;经常需要与智能仪表通过串口进行通信。串口通信方便易行&#xff0c;应用广泛。一般情况下&#xff0c;工控机和各智能仪表通过RS485总线进行通信。RS485的通信方式是半双工的&#xff0c;只能由作…

[转]index.dat文件剖析

转自http://blog.csdn.net/misterliwei/archive/2006/10/26/1352567.aspx参考工程代码http://www.codeproject.com/KB/system/IECache.aspx一&#xff0e; 前言注重上网隐私和安全的人在每次上网后都会清除上网痕迹——“删除cookies”、“删除掉上网的临时缓存文件”以…

异步套接字基础:select函数以及FD_ZERO、FD_SET、FD_CLR、FD_ISSET使用说明

异步套接字基础&#xff1a;select函数以及FD_ZERO、FD_SET、FD_CLR、FD_ISSET使用说明 select函数&#xff1a; 系统提供select函数来实现多路复用输入/输出模型。原型&#xff1a; #include <sys/time.h> #include <unistd.h> select函数&#xff1…

BMP位图结构与操作[分享]

摘自http://www.ieee.org.cn/dispbbs.asp?boardID61&ID51278 BMP位图结构与操作[分享] CSDN里面&#xff0c;大家经常问起有关BMP位图的相关操作问题&#xff0c;我在此贴一篇我收集的文章&#xff0c;向大家透彻讲解一下BMP位图的结构以及在VC下的具体操作&#xff0c;希…

linux 向外TCP最大连接只能打开28232个端口限制tuning

今天试着自己实现一个server&#xff0c;用50个进程每个10000个connect&#xff0c;当server接收到的连接数到28280的时候&#xff0c;client出现错误&#xff1a;部分进程返回错误&#xff1a;99ERR:File:client.cpp LINE:16 connect failed! msg:99: Cannot assign requested…

OSS库对频率访问的控制

通过学习&#xff0c;让我们留下点什么&#xff0c;知其然&#xff0c;知其所以然。 综述&#xff0c;采用共享内存的方法&#xff0c;记录每个IP、QQ号的超时前的访问时间、次数&#xff0c;然后定时更新记录&#xff0c;从而达到控制。源代码在local_access_limit.h 与 local…

typename另外一篇文章

<script src"/js/contentad.js"></script> /******************************************************************************* * SGI*STL是STL之父Alexander Stepanov和STL巨匠Matt Austern等人的作品, 是当今 * * 最富盛名、最出色的STL实现版本…

Linux 常用C函数(用户组篇2)

Linux 常用C函数(用户组篇2)2007-03-22 11:40getpwnam&#xff08;从密码文件中取得指定账号的数据&#xff09; 相关函数 getpw&#xff0c;fgetpwent&#xff0c;getpwent&#xff0c;getpwuid表头文件 #include<pwd.h>#include<sys/types.h>定义函数 struct pas…

C++程序员经常问的11个问题

下面的这些要点是对所有的C程序员都适用的。我之所以说它们是最重要的&#xff0c;是因为这些要点中提到的是你通常在C书中或网站上无法找到的。如&#xff1a;指向成员的指针&#xff0c;这是许多资料中都不愿提到的地方&#xff0c;也是经常出错的地方&#xff0c;甚至是对一…

遍历PCI设备的Linux设备驱动程序

本文出自:http://blog.csdn.net/hongchangfirst 如果要访问PCI 设备&#xff0c;首先要确定PCI设备在系统中的物理连接情况。描述这个连接情况的数据是“总线号”、“设备号”和“功能号”。一个系统可以有256 个PCI总线&#xff0c;每个总线上可以有32 个设备&#xff0c;每个…

*** glibc detected *** mainwindow: malloc(): smallbin double linked list corrupted: 0x01a73ab8 ***

1.先看看在glibc malloc的实现机制 /* This struct declaration is misleading (but accurate and necessary). It declares a "view" into memory allowing access to necessary fields at known offsets from a given base. See explanation below. */ st…

Linux 2.6 中的文件锁

在多任务操作系统环境中&#xff0c;如果一个进程尝试对正在被其他进程读取的文件进行写操作&#xff0c;可能会导致正在进行读操作的进程读取到一些被破坏或者不完整的数据&#xff1b;如果两个进程并发对同一个文件进行写操作&#xff0c;可能会导致该文件遭到破坏。因此&…

Linux串口编程-5-space校验

先说经过试验还不行的方案&#xff1a; ①&#xff1a;Linux串口通讯&#xff08;mark, space校验方式的实现&#xff09; http://hi.baidu.com/czyt_/item/fcaaea0ce57910c074cd3c00 ②&#xff1a;Linux操作系统下微机与单片机组成的多机通讯系统 http://wenku.baidu.com…

轮询操作 (select poll)

原文地址&#xff1a;http://blog.csdn.net/unbutun/article/details/4722448 L轮询函数 轮询的概念和作用 使用非阻塞I/O的应用程序通常会使用select()和poll()&#xff0c;poll和select用于查询设备的状态&#xff0c;以便用户程序获知是 否能对设备进行非阻塞的访问&#xf…

sizeof strlen memset的基本用法

sizeof 前向声明&#xff1a; sizeof&#xff0c;一个其貌不扬的家伙&#xff0c;引无数菜鸟竟折腰&#xff0c;小虾我当初也没少犯迷糊&#xff0c;秉着“辛苦我一个&#xff0c;幸福千万人”的伟大思想&#xff0c;我决定将其尽可能详细的总结一下。 但当我总结的时候才发现…

uclinux内核的console(6):调试信息输出

在内核调试时通常要输出一些信息&#xff0c;这些信息的输出通常由一些宏来控制&#xff0c;下面列举内核中用到的几个宏&#xff1a; 1.1 pr_debug 这个宏定义为&#xff1a; #ifdef DEBUG /* If you are writing a driver, please use dev_dbg instead */ #define pr…

OLE Drap/Drop(2)

OLE Drap/Drop(2)(转) OLE Drap/Drop(2) 欢迎来到OLE拖放指南第二部分&#xff1b;本部分的目的在于解释在OLE环境中&#xff0c;程序之间怎么样表示和传输数据。 OLE数据传输的核心是IDataObject COM接口&#xff0c;一个IDataObject提供从一个程序到另一个程序传输和访问数…

Fork vfork clone (ZZ)

进程是一个指令执行流及其执行环境&#xff0c;其执行环境是一个系统资源的集合&#xff0c;这些资源在Linux中被抽 象成各种数据对象&#xff1a;进程控制块、虚存空间、文件系统&#xff0c;文件I/O、信号处理函数。所以创建一个进程的 过程就是这些数据对象的创建过程。 …

访问 other process | 用户 空间

往任意USER PROCESS的内存读写kernel/ptrace.c : /** Access another process address space.* Source/target buffer must be kernel space,* Do not walk the page table directly, use get_user_pages*/intaccess_process_vm(struct task_struct *tsk, unsigned long addr, …

使用 Kprobes 调试内核(zz)

http://www-128.ibm.com/developerworks/cn/linux/l-kprobes.html使用 printk 收集 Linux ™ 内核的调试信息是一个众所周知的方法 —— 而使用了 Kprobes&#xff0c;不需要经常重新引导和重新编译内核就可以完成这一任务。Kprobes 与 2.6 内核结合起来提供了一个动态插入 pri…

檔案鎖定(File Locking)

檔案鎖定&#xff08;File Locking&#xff09; File Locking 提供協同檔案存取一個非常簡單且極為有用地機制&#xff0c;在我開始設計這細節以前讓我暫時代替你進行某些檔案鎖定秘密。有兩種類型鎖定的機制&#xff1a;一種是強制性&#xff1b;一種 是詢問性。強制性系統實…

C语言程序设计教程笔记_复杂数据类型_结构体

实际应用中会有一些不同数据类型组成的数据实体&#xff0c;这些不同的数据类型的数据项是相互联系的&#xff0c;应该组成一个有机的整体。如果用单独的数据项来表示&#xff0c;就不能体现数据的整体性&#xff0c;不便于操作。 C中使用结构体这种数据类型表示这种数据实体。…

C++ 11的继承构造函数

一.概述 C是面向对象的基石&#xff0c;类具有可派生性。派生类可以自动获得基类的成员变量和接口&#xff0c;不过基类的非虚函数则无法再被派生类使用了。如果派生类要使用基类的构造函数&#xff0c;通常需要在构造函数中显示声明。 例如&#xff1a; struct A {A(int i)…

Linux内存描述符mm_struct初窥

本文出自: http://blog.csdn.net/hongchangfirst 上次讲了Linux进程描述符&#xff0c;这次我们在讲讲内存描述符&#xff0c;Linux的内存描述符也用一个结构体来表示&#xff0c;具体是mm_struct结构体&#xff0c;在linux/mm_types.h里定义。Linux操作系统就是用这个结构体实…

python struct模块

struct模块 文章目录struct模块打包和解包字节顺序和对齐不定长数据pack格式符缓冲区参考struct模块提供了用于在字节字符串和Python原生数据类型之间的转换&#xff0c;可以用于处理存储在文件中或从网络连接中存储的二进制数据&#xff0c;以及其他数据源。struct中的pack函数…

Linux日志文件utmp、wtmp、lastlog、messages

1、有关当前登录用户的信息记录在文件utmp中&#xff1b;who命令2、登录进入和退出纪录在文件wtmp中&#xff1b;w命令3、最后一次登录文件可以用lastlog命令察看&#xff1b;4、messages从syslog中记录信息注意&#xff1a;wtmp和utmp文件都是二进制文件&#xff0c;他们不能被…

struct结构类型与typedef

1. struct结构体定义的形式 struct{ 成员表列 }变量名表列1,变量名表列2; 例如 structlist{ int a; char c; stuct list *next; };(注意这个分号不能少) 这个结构体的类型名是structlist &#xff1b;struct只是声明结构体需要的关键字。 如果你要定义一个结构体变量 你…

震荡波病毒原代码

// linux 下编译#include <stdio.h> #include <strings.h> #include <signal.h> #include <netinet/in.h> #include <netdb.h> #define NORM "/033[00;00m" #define GREEN "/033[01;32m" #define YELL "/033[01;33m&qu…

float浮点数的溢出处理

浮点数计算溢出处理问题、浮点数1.#INF和1.#IND 问题 浮点数计算溢出处理问题、浮点数1.#INF和1.#IND 问题 昨天遇到了一个关于浮点数计算溢出处理的问题&#xff0c;本来想用 if 语句把条件写好。 可是遇到了很多困难&#xff0c;上网搜了一下&#xff0c;发现一个解决办法&am…

typedef

typedef typedef用法小结- -在C语言的情况下&#xff0c;与C稍有出入。这两天在看程序的时候,发现很多地方都用到typedef,在结构体定义,还有一些数组等地方都大量的用到.但是有些地方还不是很清楚,今天下午,就想好好研究一下.上网搜了一下,有不少资料.归纳一下:来源一:Using ty…

《Linux驱动》iTop4412开发板LCD驱动 详细分析 (三)

接下来我们来详解介绍probe中的函数&#xff1a; 第一个函数&#xff1a; s3cfb_set_lcd_info(fbdev[i]); 1.该函数源码如下&#xff1a; /*该函数在s3cfb_wa101s.c 中*/ /* name should be fixed as s3cfb_set_lcd_info */ void s3cfb_set_lcd_info(struct s3cfb_global *ct…

《Linux驱动》iTop4412开发板LCD驱动 详细分析 (一)

在kernel中有device和driver两个描述. 一&#xff0e;先看device 在palt-s5p/dev-fimd-s5p.c 定义了一个 struct platform_device s3c_device_fb 平台设备 #ifdef CONFIG_FB_S5P // 选择开关 static struct resource s3cfb_resource[] {[0] {.start S5P_PA_FIMD0, /…

C语言字节对齐详解

一、什么是对齐&#xff0c;以及为什么要对齐&#xff1a; 1. 现代计算机中内存空间都是按照byte划分的&#xff0c;从理论上讲似乎对任何类型的变量的访问可以从任何地址开始&#xff0c;但实际情况是在访问特定变量的时候经常在特定的内存地址访问&#xff0c;这就需要各类型…

经典字符串HASH函数

//1. PHP中出现的字符串Hash函数      static unsigned long hashpjw(char *arKey, unsigned int nKeyLength) { unsigned long h 0, g; char *arEndarKeynKeyLength;      while (arKey < arEnd) { h (h << 4) *arKey; if ((g (h & 0xF0000000))) { …

poj 1556 The Doors(最短路+判断线段相交)

//以下为原blog搬迁过来的内容 【题目大意】&#xff1a;给出一个10*10的平面&#xff0c;对于平面上的每一个竖的截线都可能会有3面墙&#xff0c;题目会给出墙的端点坐标。然后要求求出(0&#xff0c;5)到(10&#xff0c;5)不穿过墙的最短路。 【解题思路】&#xff1a;枚举…

Socket超时设置---select()的妙用

用过 WinSock API 网友们知道&#xff1a;WinSock 编程中有一很方便的地方便是其 息驱动机制&#xff0c;不管是底层 API 的 WSAAsyncSelect() 还是 MFC 的异步Socket类&#xff1a; CAsyncSocket&#xff0c;都提供了诸如 FD_ACCEPT、FD_READ、FD_CLOSE 之类的消息 供编程人员…

C/C++中的日期和时间 time_t与struct tm转换

摘要&#xff1a;本文从介绍基础概念入手&#xff0c;探讨了在C/C中对日期和时间操作所用到的数据结构和函数&#xff0c;并对计时、时间的获取、时间的计算和显示格式等方面进行了阐述。本文还通过大量的实例向你展示了time.h头文件中声明的各种函数和数据结构的详细使用方法。…

OCaml中的“协变”与“逆变”

概略地说&#xff0c;子类型是类型间的一种二元关系。如果t1是t2的子类型&#xff0c;那么使用t2的地方就可以使用t1。在OCaml中&#xff0c;子类型起因于多态变体&#xff08;polymorphic variants&#xff09;。比如&#xff0c;[A ]是[ A |B ]的子类型&#xff0c;因为能处…

帮助深入理解ocaml中functor 的实例

假设我们已经有啤酒与威士忌两个模块: module Beer struct type t BEER let pour () let () Printf.printf "... a nice head ... " in BEER let consume t Printf.printf "Ha! Nothing like a good beer to quench the th…

linux c语言 select函数用法(zz)

linux c语言 select函数用法 表头文件 &#xff03;i nclude<sys/time.h> &#xff03;i nclude<sys/types.h> &#xff03;i nclude<unistd.h> 定义函数 int select(int n,fd_set * readfds,fd_set * writefds,fd_set * exceptfds,struct timeval * timeout…

实现Java与C语言接口

第一步&#xff1a;声明本地变量 <CCID_NOBR> <CCID_CODE>例如&#xff1a;class NativeHello{ public native void nativeHelloWorld(); static{ System.loodlibrary("nativeTest");//调用nativeTest.dll库文件 } &#xff5d;</CCID_CODE> <…

C语言中的结构体数组

C语言中的结构体数组 1.结构体 数组概念 2. 结构体数组定义和初始化 3. 结构体数组的引用 结构体数组的概念 元素为结构体类型的数组称为结构体数组&#xff0c;在实际的应用过程中&#xff0c;经常使用结构体数组来表示具有相同数据结构的一个群体 struct student{int x…

不可不知的C#基础–从 struct 和 class的异同 说开去

我知道很多人都讨论过这个问题, 多我一个不多, 少我一个不少. 最近有人又问到这个问题, 所以想再说说. 万丈高楼平地起, 地基很重要. 懂了的人不要嫌罗嗦, 欢迎补充或者纠正. 从起源/定义说起 Struct 从C 的时代就已经有了(向丹尼斯.里奇致敬), 它是Structure 的缩写 -- 就是…

C/C+语言struct深层探索(二)

2. struct的成员对齐 Intel、微软等公司曾经出过一道类似的面试题&#xff1a; 1. #include <iostream.h>2. #pragma pack(8)3. struct example14. {5. short a;6. long b;7. };8. struct example29. {10. char c;11. example1 struct1; 12. short e; 13. };14. #pra…

linux的idr机制

最近研究进程间通信&#xff0c;遇到了idr相关的函数&#xff0c;为了扫清障碍&#xff0c;先研究了linux的idr机制。 所谓IDR&#xff0c;其实就是和身份证的含义差不多&#xff0c;我们知道&#xff0c;每个人有一个身份证&#xff0c;身份证只是 一串数字&#xff0c;从数字…

Linux实现时钟中断的全过程

5.2.2.Linux实现时钟中断的全过程 1&#xff0e;可编程定时/计数器的初始化 IBM PC中使用的是8253或8254芯片。有关该芯片的详细知识我们不再详述&#xff0c;只大体介绍以下它的组成和作用&#xff0c;如下表5.1所示&#xff1a; 表5.1 8253/8254的组成及作用 名称…

netlink (转)

Netlink 是一种特殊的 socket&#xff0c;它是 Linux 所特有的&#xff0c;类似于 BSD 中的AF_ROUTE 但又远比它的功能强大&#xff0c;目前在最新的 Linux 内核&#xff08;2.6.14&#xff09;中使用netlink 进行应用与内核通信的应用很多&#xff0c;包括&#xff1a;路由 da…

pthread_cond_wait()用法分析

很久没看APUE&#xff0c;今天一位朋友问道关于一个mutex的问题&#xff0c;又翻到了以前讨论过的东西&#xff0c;为了不让自己忘记&#xff0c;把曾经的东西总结一下。 先大体看下网上很多地方都有的关于pthread_cond_wait()的说明&#xff1a; 条件变量 条件变量是…

Linux进程PID散列表

linux系统中每个进程由一个进程id标识&#xff0c;在内核中对应一个task_struct结构的进程描述符&#xff0c;系统中所有进程的task_struct通过链表链接在一起&#xff0c;在内核中&#xff0c;经常需要通过进程id来获取进程描述符&#xff0c;最简单的方法可以通过遍历task_st…

软中断

软中断软中断softirqsoftirq简介提出softirq的机制的目的和老版本的底半部分的目的是一致的&#xff0c;都是将某个中断处理的一部分任务延迟到后面去执行。 Linux内核中一共可以有32个softirq,每个softirq实际上就是指向一个函数。当内核执行softirq(do_softirq),就对这32个so…

内核中的互斥之我见

关于内核中spinlock的一些个人理解由于2.6内核可以抢占&#xff0c;应该在驱动程序中使用 preempt_disable() 和 preempt_enable()&#xff0c;从而保护代码段不被抢占&#xff08;禁止 IRQ 同时也就隐式地禁止了抢占&#xff09;。 在这里&#xff0c;我主要把自己对内核中spi…

网络socket编程

网络socket编程指南 -------------------------------------------------------------------------------- 读者对象   这个文档是一个指南&#xff0c;而不是参考书。如果你刚开始 socket 编程并想找一本入门书&#xff0c;那么你是我的读者。但这不是一本完全的 socket…

ifconfig promisc

ifconfig promisc 调用 ioctl(skfd, SIOCSIFFLAGS, &ifr) | | net/core/dev.c net/core/dev_mcast.c int dev_ioctl(unsigned int cmd, void __user *arg) | | int dev_change_flags(struct net_device *dev, unsigned flags) | | void dev_set_promiscuity…

barrier(wmb,mb,rmb)和cache coherence

http://www.linuxforum.net/forum/gshowflat.php?Cat&BoardlinuxK&Number428239&page5&viewcollapsed&sb5&oall&fpart 注: 这里的barrier 指的是wmb, rmb, mb. 一 直找不到合适的资料说明barrier和 Cache coherence 之间的关系. 在<<ldd>…

Linux2.4.18内核下的系统调用劫持 [转]

注&#xff1a;本文提到的方法和技巧&#xff0c;如有兴趣请参考后面提到的两篇参考文章&#xff0c;虽然比较老了&#xff0c;但是对于本文内容的实现有很大的参考价值。因为篇幅关系&#xff0c;没有列出完整代码&#xff0c;但是核心代码已经全部给出。 Linux 现在使用是越来…

UDP服务器程序实现echo功能

//服务器&#xff1a; #include<stdio.h>#include<stdlib.h>#include<string.h>#include<unistd.h>#include<sys/types.h>#include<netinet/in.h>#include<arpa/inet.h> #define N 100typedef struct sockaddr SA; int main(int …

(整理笔记)stm32 systick 的 研究和使用

一、SysTick定时器的概念 Sys 系统 &#xff0c;tick 滴答声 &#xff0c;系统滴答滴答很形象地表示了它是一个系统节拍器。SysTick 是一个24 位的倒计数定时器&#xff0c;当计到0 时&#xff0c;将从RELOAD 寄存器中自动重装载定时初值。只要不把它在SysTick 控制及状态寄存…

Linux设备驱动模型

2.6内核增加了一个引人注目的新特性——统一设备模型(device model)。设备模型提供了一个独立的机制专门来表示设备&#xff0c;并描述其在系统中的拓扑结构&#xff0c;从而使得系统具有以下优点&#xff1a; l 代码重复最小化。 l 提供诸如引用计数这样的统一机制。 l 可以列…

Linux串口—struct termios结构体

一、数据成员 termios 函数族提供了一个常规的终端接口&#xff0c;用于控制非同步通信端口。 这个结构包含了至少下列成员&#xff1a; tcflag_t c_iflag; /* 输入模式 */ tcflag_t c_oflag; /* 输出模式 */ tcflag_t c_cflag; /* 控制模式 */ tcflag_t c_lfl…

Linux设备驱动编程模型之上层容器篇

2.6内核增加了一个引人注目的新特性——统一设备模型(device model)。设备模型提供了一个独立的机制专门来表示设备&#xff0c;并描述其在系统中的拓扑结构&#xff0c;从而使得系统具有以下优点&#xff1a; l 代码重复最小化。 l 提供诸如引用计数这样的统一机…

链表程序引发的指针思考

先把代码粘上来 #include <iostream> using namespace std; typedef struct node { int data; node *next; }*LinkList,Node; LinkList creat() { LinkList r,p,head; int n,x; cout<<"请输入数字的个数"<<endl; …

关于linux设备模型kobject,kset,ktype

-------------------------------------------------------- 本文系本站原创,欢迎转载! 转载请注明出处:http://blog.csdn.net/gdt_a20 -------------------------------------------------------- 一、sysfs文件系统下的每个目录对应于一个kobj&#xff0c;kset是kobj的封装&a…

QT信号和槽以结构体为参数传递复杂数据

http://blog.csdn.net/storylsl/article/details/7240412 QT信号和槽以结构体为参数传递复杂数据 2012-02-07 19:48 634人阅读 评论(0) 收藏 举报 QT 的信号和槽机制能十分方便的用来传输数据&#xff0c;但是如果数据种类比较多&#xff0c;分类比较多的时候&#xff0c;就需…

C语言中如何使用宏(#、##、...)

C&#xff08;和C&#xff09;中的宏&#xff08;Macro&#xff09;属于编译器预处理的范畴&#xff0c;属于编译期概念&#xff08;而非运行期概念&#xff09;。下面对常遇到的宏的使用问题做了简单总结。 1.关 于#和## 在C语言的宏中&#xff0c;#的功能是将其后面的宏参数…

buffer_head和bio

一、page和buffer_head的关系 1、页中的块在磁盘上连续 如果page中的块在磁盘上连续&#xff0c;那么page的PG_private不会被置位&#xff0c;private字段也不会指向buffer_head的链表。 但是page还是得用到buffer_head结构&#xff0c;因为它需要通过get_block()函数来获得磁…

Iovec,Msghdr

msghdr and cmsghdr 证书可以作为通信中所接收的附属数据的一部分而接收。附属数据对于通常数据来说是补充或是从属。这就引出需要在这里强调的几点问题&#xff1a; 证书是作为附属数据的一部分而接收的。 附属数据必须是补充通常数据的(他不可以独立传送)。 附属数据也可以包…

Linux内核数据包处理流程-数据包接收(3)

五、队列层1、软中断与下半部当用中断处理的时候&#xff0c;为了减少中断处理的工作量&#xff0c;比如&#xff0c;一般中断处理时&#xff0c;需要屏蔽其它中断&#xff0c;如果中断处理时间过长&#xff0c;那么其它中断有可能得不到及时处理&#xff0c;也以&#xff0c;有…

Linux内核数据包处理流程-数据包接收(1)

数据包的接收作者&#xff1a;kendoKernel&#xff1a;2.6.12一、从网卡说起这并非是一个网卡驱动分析的专门文档&#xff0c;只是对网卡处理数据包的流程进行一个重点的分析。这里以Intel的e100驱动为例进行分析。大多数网卡都是一个PCI设备&#xff0c;PCI设备都包含了一个标…

进程内核栈、用户栈

from: http://www.cnblogs.com/shengge/archive/2011/08/29/2158748.html http://blog.csdn.net/cbl709/article/details/7340755 进程内核栈、用户栈1.进程的堆栈 内核在创建进程的时候&#xff0c;在创建task_struct的同事&#xff0c;会为进程创建相应的堆栈。每个进程会有…

linux内核模块的强制删除

一.问题&#xff1a; 前些日子在工作中遇到一个文件&#xff0c;当rmmod一个模块的时候&#xff0c;在模块的exit函数中阻塞了&#xff0c;rmmod进程杀也杀不掉&#xff0c;永远呆在那里&#xff0c;发现它已经是D(disk sleep)状态了&#xff0c;真的无能为力了吗&#xff1f;…

kthread_create 简单使用

kthread_create&#xff1a;创建线程。struct task_struct *kthread_create(int (*threadfn)(void *data),void *data,const char *namefmt, ...);线程创建后&#xff0c;不会马上运行&#xff0c;而是需要将kthread_create() 返回的task_struct指针传给wake_up_proce…

linux下的时间 汇编

一&#xff0e;概念 Coordinated Universal Time&#xff08;UTC&#xff09;&#xff1a;协调世界时&#xff0c;又称为世界标准时间&#xff0c;也就是大家所熟知的格林威治标准时间&#xff08;Greenwich Mean Time&#xff0c;GMT&#xff09;。比如&#xff0c;中国内地的…

串口程序设计——struct termios结构体

串口程序设计——struct termios结构体 一、数据成员 termios 函数族提供了一个常规的终端接口&#xff0c;用于控制非同步通信端口。 这个结构包含了至少下列成员&#xff1a; tcflag_t c_iflag; /* 输入模式 */ tcflag_t c_oflag; /* 输出模式 */ tcflag_t c_cf…

Linux系统调用--fcntl函数详解

Linux系统调用--fcntl函数详解 (2007-11-06 15:09)分类&#xff1a; ARM-Linux应用程序今天在看《Linux设备驱动程序&#xff08;第3版&#xff09;》碰到了fcntl系统调用&#xff0c;以前没接触过。在网上查到了这份资料&#xff0c;转载自 企鹅乐园_雅虎群组。【fcntl系统调用…

linux设备驱动头文件说明

#include <linux/***.h> 是在linux-2.6.29/include/linux下面寻找源文件。 #include <asm/***.h> 是在linux-2.6.29/arch/arm/include/asm下面寻找源文件。 #include <mach/***.h> 是在linux-2.6.29/arch/arm/mach-s3c2410/include/mach下面寻找源文件。 #…

C#中partial关键字

1. 什么是局部类型&#xff1f; C# 2.0 引入了局部类型的概念。局部类型允许我们将一个类、结构或接口分成几个部分&#xff0c;分别实现在几个不同的.cs文件中。 局部类型适用于以下情况&#xff1a; (1) 类型特别大&#xff0c;不宜放在一个文件中实现。 (2) 一个类型中的…

等待队列源码分析

原文&#xff1a;http://edsionte.com/techblog/archives/1895 正如list_head结构那样&#xff0c;等待队列(wait queue)作为linux内核中的基础数据结构&#xff0c;与进程调度紧密结合在一起&#xff1b;在驱动程序中&#xff0c;常常使用等待队列来实现进程的阻塞和进程的唤醒…

创建字符设备的三种方法

本文系作者原创, 欢迎大家转载!转载请注明出处:netwalker.blog.chinaunix.net《创建字符设备的三种方法》这篇文章已经在网上广为流传&#xff0c;你可以在http://blogold.chinaunix.net/u1/36290/showart_415402.html找到这篇文章的一份拷贝&#xff0c;从浏览量上看定有许多人…

bin文件格式分析

xip 的 bin 文件分析 一个bin 文件在存储上是按下面的结构存储的 组成&#xff1a;标记(7)Image开始地址(1)Image长度(1) 记录0地址记录0长记录0校验和记录0内容(文件内容) 记录1地址记录1长记录1校验和记录1内容(文件内容) ...... 最后一…

Linux下spi驱动开发(1)

Linux下spi驱动开发&#xff08;1&#xff09; 作者&#xff1a;刘洪涛,华清远见嵌入式学院讲师。 一、概述 基于子系统去开发驱动程序已经是linux内核中普遍的做法了。前面写过基于I2C子系统的驱动开发。本文介绍另外一种常用总线SPI的开发方法。SPI子系统的开发和I2C有很多…

USB 基本知识(一)

USB的重要关键字: 1、端点&#xff1a;位于USB设备或主机上的一个数据缓冲区&#xff0c;用来存放和发送USB的各种数据&#xff0c;每一个端点都有惟一的确定地址&#xff0c;有不同的传输特性&#xff08;如输入端点、输出端点、配置端点、批量传输端点&#xff09; 2、帧&am…

linux 中断

与Linux设备驱动中中断处理相关的首先是申请与释放IRQ的API&#xff1a; request_irq()和free_irq()。 request_irq()的原型为&#xff1a; int request_irq(unsigned int irq,void (*handler)(int irq, void *dev_id, struct pt_regs *regs),unsigned long irqflags,const c…

s3c2440按键驱动

/*调用内核头文件&#xff0c;和应用程序调用的头文件不一样*/#include <linux/module.h>#include <linux/kernel.h>#include <linux/fs.h>#include <linux/init.h>#include <linux/delay.h>#include <asm/irq.h>#include <linux/inter…

structure union 主要区别

Structure 与 Union主要有以下区别: 1. struct和union都是由多个不同的数据类型成员组成, 但在任何同一时刻, union中只存放了一个被选中的成员, 而struct的所有成员都存在。在struct中&#xff0c;各成员都占有自己的内存空间&#xff0c;它们是同时存在的。一个struct变量…

GCC警告选项例解

程序员是追求完美的一族&#xff0c;即使是一般的程序员大多也都不想看到自己的程序中有甚至那么一点点的瑕疵。遇到任意一条编译器警告都坚决不放过。有人会说&#xff1a;我们可以使用比编译器更加严格的静态代码检查工具&#xff0c;如splint。 这个建议也很不错。不过lint工…

C++中的内存对齐

一.计算struct的size有两个原则&#xff1a; #pragma pack(n) n是编译器的对齐字节数 &#xff08;1&#xff09;struct中各成员按照对齐原则&#xff1a;在为当前变量&#xff08;设为a&#xff09;分配内存时&#xff0c;要参考之前所有变量的偏移量之和&#xff08;设为d&am…

C语言小记

英文原文&#xff1a;Ryan 编译&#xff1a;伯乐在线 – 肖翔 http://blog.jobbole.com/16035/ C语言常常让人觉得它所能表达的东西非常有限。它不具有类似第一级函数和模式匹配这样的高级功能。但是C非常简单&#xff0c;并且仍然有一些非常有用的语法技巧和功能&#xf…

C 宏定义的简单总结

转自&#xff1a;http://dxf206.blog.163.com/blog/static/4227861200952511813462/ 我在写代码的时候喜欢使用宏&#xff0c;不仅使代码看起来整洁&#xff0c;而且用好了还能极大的减轻编码的工作量&#xff0c;但是如果使用不当的话&#xff0c;出了问题查找起来就就非常的…

Doxygen

最近研究了下linux 下的doxygen的使用&#xff0c;很有意思&#xff0c;把经验分享下&#xff1a; 1. 安装doxygen 安装包 doxygen-1.7.4.linux.bin.tar.gz&#xff08;可在官网下载&#xff09; 命令&#xff1a; 1) tar xvfz doxygen-1.7.4.linux.bin.tar.gz 2) …

Philip J. Fry Problem

Philip J. Fry Problem Time Limit:2000MS Memory Limit:0KB 64bit IO Format:%lld& %llu Submit Status Practice UVA 12324 Description 题目链接&#xff1a;http://uva.onlinejudge.org/index.php?optioncom_onlinejudge&Itemid8&pageshow_pr…

《转》linux内核如何管理内存

在仔细审视了进程的虚拟地址布局之后&#xff0c;让我们把目光转向内核以及其管理用户内存的机制。再次从gonzo图示开始&#xff1a; Linux进程在内核中是由task_struct的实例来表示的&#xff0c;即进程描述符。task_struct的mm字段指向内存描述符&#xff08;memory descript…

linux内核cdev_init系列函数

内核中每个字符设备都对应一个 cdev 结构的变量&#xff0c;下面是它的定义&#xff1a; linux-2.6.22/include/linux/cdev.h struct cdev { struct kobject kobj; // 每个 cdev 都是一个 kobject struct module *owner; // 指向实现驱动的模块 const struct fi…

Linux TCP/IP 协议栈的关键数据结构Socket Buffer(sk_buff )

sk_buff结构可能是linux网络代码中最重要的数据结构&#xff0c;它表示接收或发送数据包的包头信息。它在<include/linux/skbuff.h>中定义&#xff0c;并包含很多成员变量供网络代码中的各子系统使用。 这个结构在linux内核的发展过程中改动过很多次&#xff0c;或者是增…

linux上hasp_map学习笔记 struct hashstring

1.HASH函数的声明问题 template< class_Key,class_Tp,class_HashFcn hash<_Key>, class _EqualKey equal_to<_Key>,class _Alloc __STL_DEFAULT_ALLOCATOR(_Tp) >class hash_map{...}也就是说&#xff0c;在上例中&#xff0c;有以下等同关系&#xff1a…

海量数据处理利器 STL中哈希表 hash_map(C++)

对海量数据进行处理的时候经常要使用hash_map,java里使用hash_map比较简单&#xff0c;下面将介绍C STL中哈希表 hash_map的使用方法&#xff0c;主要内容引用下面链接内容。 http://blogold.chinaunix.net/u2/82382/showart.php?id2072959 0 为什么需要hash_map 用过map吧&am…

单链表的快速排序

单链表的快速排序和数组的快速排序在基本细想上是一致的&#xff0c;以从小到大来排序单链表为例&#xff0c;都是选择一个支点&#xff0c;然后把小于支点的元素放到左边&#xff0c;把大于支点的元素放到右边。 但是&#xff0c;由于单链表不能像数组那样随机存储&#xff0c…

C++中4种强制类型转换

不过为了完成强制类型转换&#xff0c;C中已经为我们提供了4中标准方法&#xff0c;它们是dynamic_cats, static_cast, const_cast, reinterpret_cast&#xff0c;用法形式为&#xff1a;dynamic_cast<类型说明符>(表达式)&#xff0c;之所以分成4类&#xff0c;就表示他…

Win32串口编程

Win32串口编程 作者&#xff1a;韩耀旭 下载源代码http://www.vckbase.com/code/viewcode.asp?id3002 在工业控制中&#xff0c;工控机&#xff08;一般都基于Windows平台&#xff09;经常需要与智能仪表通过串口进行通信。串口通信方便易行&#xff0c;应用广泛。一般情况下…

typedef 的用法

typedef 的用法此部分参考自&#xff1a;http://blog.sina.com.cn/u/572f7666010008dm 用途一&#xff1a;定义一种类型的别名&#xff0c;而不只是简单的宏替换。可以用作同时声明指针型的多个对象。比如&#xff1a; char* pa, pb; // 这多数不符合我们的意图&#xff0c;它…

linux内核struct链表程序与分析

struct是编程的重要部分&#xff0c;学好struct非常重要&#xff0c;本文参考网友与自己总结&#xff0c;适合初学者&#xff0c;或者想了解linux内核对struct的利用。 编写的代码在linux下gcc可编译通过。 # gcc mylist.c -o mylist [jinyonglocalhost 888]$ lslist.h myli…

linux进程间通信之信号量

信号灯与其他进程间通信方式不大相同&#xff0c;它主要提供对进程间共享资源访问控制机制。相当于内存中的标志&#xff0c;进程可以根据它判定是否能够访问某些共享资源&#xff0c;同时&#xff0c;进程也可以修改该标志。除了用于访问控制外&#xff0c;还可用于进程同步。…

poj 1873 The Fortified Forest(凸包+枚举)

【题目大意】&#xff1a;给出n棵树&#xff0c;每棵树有坐标&#xff0c;权值&#xff0c;和长度&#xff0c;现在要砍下其中的某些树&#xff0c;来做围栏来把剩下的树围起来&#xff0c;问损失的数最小价值是多少。 【解题思路】&#xff1a;明显求围栏就是一个凸包问题&…

poj 1113 Wall(Graham扫描法求凸包)

【题目大意】&#xff1a;给出一些点&#xff0c;求凸包周长&#xff0c;并加上给定圆周长 【解题思路】&#xff1a;极角排序&#xff0c;然后求凸包。模版testing 【代码】&#xff1a; #include <iostream> #include <cstdio> #include <cstring> #includ…

spoj 145 Aliens(增量法+最小包围圈)

【题目大意】&#xff1a;给出你T个case。每个case有n个点&#xff0c;叫你求这个点的半径和圆心坐标&#xff0c;使得这个圆覆盖所有的点(n<100000) 【解题思路】&#xff1a;曾经在zoj上做过一道最小圆的覆盖&#xff0c;但是那道题的点只有100&#xff0c;当初是暴力做的…

poj 2289 Jamie's Contact Groups(二分答案+网络流判定)

【题目大意】&#xff1a;n个人&#xff0c;告诉你他可以从属于那些小组&#xff0c;现在问你将n个人分成m组&#xff0c;最大的组最小的人数是多少。 【解题思路】&#xff1a;最大最小值...想到的是二分出上界&#xff0c;符合条件则缩小上界&#xff0c;反之则增大。如何判断…

基于C语言的航班信息的查询与检索

航班信息的查询与检索 #include<stdio.h> #include<string.h>#define MaxSpace 100 #define keylen 7 #define RADIX_n 10 #define RADIX_c 26typedef char KeyType; typedef struct{char start[7]; //起点站 char end[7]; //终点站 char sche[12]; //航班期 c…

poj 1797 Heavy Transportation (最短路变形)

【题目大意】&#xff1a;求城市1到n上的路径的可行路径上的最小值的最大值...(这题目怎么解释得这么绕口啊&#xff0c;其实就是找到一条路径的最小值&#xff0c;使最小值最大) 【解题思路】&#xff1a;这道题是一个dij的变形&#xff0c;改一下判定条件就可以了。之后&…

hdoj 1983 Kaitou Kid - The Phantom Thief (2) (dfs+bfs)

【题目大意】&#xff1a;你得知Kid将会在展览开始后T分钟内盗取至少一颗宝石&#xff0c;并离开展馆。整个展馆呈矩形分布&#xff0c;划分为N*M个区域&#xff0c;有唯一的入口和出口&#xff08;不能从出口进入&#xff0c;同样不能从入口出去&#xff09;。由某个区域可直接…

poj 1410 Intersection(判矩形和线段相交。。细节多)

//以下为原blog搬迁过来的内容 【题目大意】&#xff1a;给出一条线段和一个矩形&#xff0c;判断线段和矩形是否相交。 【解题思路】&#xff1a;判给出的线段与矩形的每条线段是否相交&#xff08;包括相交和非规范相交&#xff09;。 1、内含也算相交&#xff08;WA一次&am…

poj 3715 Blue and Red(二分图最大匹配匈牙利算法)

【题目大意】&#xff1a;给出n个士兵和m组关系&#xff0c;每个士兵均被划分在Blue组或者是Red组&#xff0c;m组关系描述的是士兵x,y直接是否是亲密关系。由于具备亲密关系的两个士兵被分在两个不同的组&#xff0c;那么对训练结果会产生不好的影响&#xff0c;问你最少去掉多…

链接器工具错误 LNK2019 - 模板类里声明友元函数

错误消息 在函数“function”中引用了无法解析的外部符号“symbol”在 function 中找到了未定义的外部符号 (symbol)。若要解决此错误&#xff0c;请提供符号定义或移除引用它的代码。一般报错如下&#xff1a; error LNK2001: unresolved external symbol "class std::…

《深入理解Linux网络内幕》学习笔记一:内核通知链

大多数内核子系统都是相互独立的&#xff0c;因此某个子系统可能对其它子系统产生的事件感兴趣。为了满足这个需求&#xff0c;也即是让某个子系统在发生某个事件时通知其它的子系统&#xff0c;Linux内核提供了通知链的机制。通知链表只能够在内核的子系统之间使用&#xff0c…

bus,device,driver三者关系

bus,device,driver三者关系 bus: 总线作为主机和外设的连接通道&#xff0c;有些总线是比较规范的&#xff0c;形成了很多协议。如 PCI,USB,1394,IIC等。任何设备都可以选择合适的总线连接到主机。当然主机也可能就是CPU本身。内存也是通过BUS连接到主机的&#xff0c;可内存 …

串口通信API

串口通信1 串口接口分DB9和DB25两种。其中DB9的2为发送&#xff0c;3为接受&#xff0c;5为接地。串口参数主要为&#xff1a;波特率&#xff0c;数据位&#xff0c;停止位&#xff0c;奇偶校验位&#xff0c;流控制协议位2 重要数据结构struct termios{tcflag_t c_iflag; /* …

不定参数函数的运用与实现

在论坛里看了“printf("%f",10/3); 答案是多少&#xff1f;”这篇帖子后&#xff0c;自己写了下小结&#xff01;&#xff01;望大家不吝赐教&#xff01;&#xff01;&#xff01; 实现原理和理论依据: 函数参数传递的时候,参数是线性的存储在内存中的,因此,如果知道…

linux下与时间相关的几个函数总结

1 asctime 函数简介将时间和日期以字符串格式表示 相关函数time&#xff0c;ctime&#xff0c;gmtime&#xff0c;localtime 头文件 #include<time.h> 函数原型 char * asctime(const struct tm * timeptr); 函数说明 asctime()将参数timeptr所指的tm结构中的信息转换…

linux NAND驱动之六:NAND驱动的probe流程

由前面的说明可知&#xff0c;我们在要对NAND 芯片进行实际操作前已经为struct mtd_info 、struct mtd_partition 和struct nand_chip 这三个结构体分配好了内存&#xff0c;接下来就要为它们做一些初始化工作。 其中&#xff0c;我们需要为struct mtd_info 所做的初始化工作并…

Android下如何通过JNI方法向上提供接口总结

参考文献: http://blog.csdn.net/luoshengyang/article/details/6575988 http://www.androidmi.com/Androidkaifa/rumen/201005/633.html 1 什么是JNI JNI是Java Native Interface的缩写,即Java本地接口.从Java1.1开始&#xff0c;JNI标准成为Java平台的一部分&#xff0…

学习COM心得!

typedef unsigned short UInt16;typedef unsigned int UInt32;//UDP.H interface out in parameterstypedef struct{UInt16 port;UInt32 addr;} StunAddress4;// Define enum with different types of NAT typedef enum //NAT类型{StunTypeUnknown0,StunTypeFailure,StunTyp…

linux协议栈skb操作函数

接字缓冲区函数 函数名 功能 函数形成 参数 描述 skb_queue_empty 检查队列是否为空 int skb_queue_empty (struct sk_buff_head * list) list为队列头 如果队列为空返回真&#xff0c;否则返回假 skb_get 引用缓冲区 struct sk_buff * skb_get (struct sk_buff *…

学习Socket ,写简单网络监视程序心得!

主要思路是通过原始套接字来将通过本机网卡的IP层数据包捕获&#xff01; #ifndef _PROTO_H #define _PROTO_H 0x2009#include <winsock2.h>#include <ws2tcpip.h>#include <mstcpip.h>#pragma comment(lib, "Ws2_32.lib")#define MAX_PACK_LEN …

在NT系统中让自己消失

[ 在NT系列操作系统里让自己“消失”]SoBeIt作者&#xff1a;Holy_Father <holy_fatherphreaker.net>版本&#xff1a;1.2 english日期&#xff1a;05.08.2003[ 1. 内容 ]1. 内容 2. 介绍 3. 文件3.1 NtQueryDirectoryFile3.2 NtVdmControl 4. 进程 5. 注册表5.1 NtEnume…

变量的内部存储:值和类型

PHP是一种弱类型的脚本语言&#xff0c;弱类型不表示PHP的变量没有类型区分&#xff0c;PHP变量有8种原始类型&#xff1a; 四种标量类型&#xff1a; boolean&#xff08;布尔型&#xff09; integer&#xff08;整型&#xff09; float&#xff08;浮点型&#xff09; …

s3c2410时钟信号:FCLK、HCLK和PCLK

s3c2410 有三个时钟FLCK 、HCLK 和PCLK &#xff08;这3个时钟都是核心时钟&#xff09;s3c2410 芯片有这么一段话&#xff1a;FCLK is used by ARM920T &#xff0c;内核时钟&#xff0c;主频。HCLK is used for AHB bus, which is used by the ARM920T, the memory controlle…

结构 COMBOBOXINFO 的一些注意事项

结构 COMBOBOXINFO 的一些注意事项 COMBOBOXINFO定义如下&#xff1a; typedef struct tagCOMBOBOXINFO {DWORD cbSize;RECT rcItem;RECT rcButton;DWORD stateButton;HWND hwndCombo;HWND hwndItem;HWND hwndList;} COMBOBOXINFO, *PCOMBOBOXINFO, *LPCOMBOBOXINFO; 第一个c…

WinXP SP2 USER32.DLL CallWindowProc(...)

<script type"text/javascript"></script> ToolTipCallWindowProc 被设定为一个宏&#xff0c; 分为CallWindowProcA 和 CallWindowProcW。 在A和W这两个函数中&#xff0c;都简单的调用了CallWindowProcAorW(...)这个函数。其原型为&#xff1a;LR…

MTK UCM outgoing

Gemini 版本 从Idle拨号到出现outgoing画面的具体流程以及函数调用。&#xff08;由于排版问题&#xff0c;请copy到UE查看&#xff09; 在IDLE界面输入电话号码 IdleApp.c mmi_idle_entry_idle_screen() SetGroupKeyHandler(HandleIdleScreenDigitEntry, IdleScreenD…

MTK:UCM--MO

一、进入ILDE界面 1.EntryIdleScreen&#xff08;&#xff09; 2.mmi_idle_entry_idle_screen&#xff08;&#xff09; 注册按键&#xff1a;HandleIdleScreenDigitEntry&#xff08;&#xff09; IdleSetLRKey&#xff08;&#xff09;注册左软件EntryMainMenuFromIdleScree…

WinXP SP2 user32.dll ValidateHandle(HWND h)

<script type"text/javascript"></script> /****************************************tEST jS ToolTipWinXP SP2 user32.dll ValidateHandle(HWND h)OK, 你如果看到这篇文章&#xff0c;你现在把她当草稿吧。*************************************…

.Net中unsafe编程详解

以c#为例。 一&#xff0c;打开unsafe编程开关 工程中默认的配置是不支持代码的非安全性的&#xff0c;所以第一次使用你得&#xff1a; 解决方案管理器→→Properties→→生成选项卡→→允许不安全代码。 二&#xff0c;何时要用unsafe 1.一个原则 unsafe 关键字表示不安全…

va_start、va_end、va_arg , va_list的使用

这些结构和函数,都是用在形参可变的函数中. va_list : 就是指个数可变形参列表,是不固定的哦 va_start: 使指向va_list的指针指向va_list的第一个可选参数 va_end : 使指向va_list的指针为NULL va_arg : 返回参数列表中的当前参数并使argp指向参数列表中的下一个参数 具…

ELF动态解析符号过程(修订版)

创建时间&#xff1a;2002-01-28文章属性&#xff1a;原创文章来源&#xff1a; http://www.xfocus.org/文章提交&#xff1a; alert7 (sztcww_at_sina.com)ELF动态解析符号过程(修订版)by alert7 2002-01-27★★ 前言本篇文章以linux为平台为例&#xff0c;演示ELF动态解析符号…

Linux 2.6版内核中通过模块获取sys_call_table地址的方法

本文主要介绍在Linux 2.6版的内核中实现基地址修改的方法。所有代码我都在基于2.6.19版内核的Fedora Core 6上进行了测试。 Linux 2.6版的内核出于安全的考虑没有将系统调用列表基地址的符号sys_call_table导出&#xff0c;但要对系统调用进行替换&#xff0c;却必须要获取该地…

epoll的高效实现原理

epoll的高效实现原理 原文地址&#xff1a;http://blog.chinaunix.net/space.php?uid26423908&doblog&id3058905 开发高性能网络程序时&#xff0c;windows开发者们言必称iocp&#xff0c;linux开发者们则言必称epoll。大家都明白epoll是一种IO多路复用技术&#xff…

高级名字与地址转换————getaddrinfo()函数详解

getaddrinfo()函数详解 1. 概述IPv4中使用gethostbyname()函数完成主机名到地址解析&#xff0c;这个函数仅仅支持IPv4&#xff0c;且不允许调用者指定所需地址类型的任何信息&#xff0c;返回的结构只包含了用于存储IPv4地址的空间。IPv6中引入了getaddrinfo()的新API&#xf…

arm linux 从入口到start_kernel 代码分析——head.S分析——2

arm linux 从入口到start_kernel 代码分析 - 2 (2008-07-30 16:02:43) 转载标签&#xff1a; it 分类&#xff1a;kernel 1. 确定 processor type arch/arm/kernel/head.S中:00075: mrc p15, 0, r9, c0, c0 get processor id 00076: bl __lookup_processor_type …

USB通讯

1、端点&#xff1a;位于USB设备或主机上的一个数据缓冲区&#xff0c;用来存放和发送USB的各种数据&#xff0c;每一个端点都有惟一的确定地址&#xff0c;有不同的传输特性&#xff08;如输入端点、输出端点、配置端点、批量传输端点&#xff09;2、帧&#xff1a;时间概念&a…

如何在linux/unix中设置线程的优先级

如何在linux/unix中设置线程的优先级 int pthread_create(pthread_t *thread, const pthread_attr_t *attr, void *(*start_routine)(void*), void *arg);来创建线程&#xff0c;但是如何设置线程的优先级呢&#xff1f;在讨论这个问题的时候&#xff0c;我们先要确定当前线程…

VC之美化界面

美化界面需要先熟悉Windows下的绘图操作&#xff0c;并明白Windows的幕后绘图操作&#xff0c;才能有的放矢&#xff0c;知道哪些可以使用&#xff0c;知道哪些可以避免…… 2.1 Windows下的绘图操作 熟悉DOS的读者可能就知道&#xff1a;DOS下面的图形操作很方便&#xff…

wince2秒快速启动TOC分析(作者:gliethttp)

为什么29M的wince内核nk.nb0文件在2秒钟就能快速启动&#xff0c;如果你用汇编设计一个从NAND单纯拷贝29M nk.nb0的快速程序&#xff0c;你会发现用200MFCLK的2410或者用400MFCLK的2440都至少需要十几秒&#xff0c;那为什么ce能够启动这么快呢&#xff0c;有什么加速算法吗&am…

变量被重复定义的问题的讨论

变量被重复定义的问题&#xff0c;敬请指教&#xff1a;在Fat32.h中定义&#xff1a; #ifndef _FAT32_H#define _FAT32_Hstruct FileInfoStruct FileInfo; //文件信息结构体实体struct FAT32_Init_Arg Init_Arg; //初始化参数结构体实体#endif在fat32.c中&am…

pthread_mutex_t锁

linux下为了多线程同步&#xff0c;通常用到锁的概念。 posix下抽象了一个锁类型的结构&#xff1a;ptread_mutex_t。通过对该结构的操作&#xff0c;来判断资源是否可以访问。顾名思义&#xff0c;加锁(lock)后&#xff0c;别人就无法打开&#xff0c;只有当锁没有关闭(unlock…

linux下的sleep usleep select

1.sleep/usleep: sleep&#xff08;n&#xff09;&#xff1a;休眠n秒&#xff1b; usleep&#xff08;n&#xff09;&#xff1a;休眠n微妙&#xff1b;1秒1000&#xff0c;000微秒 可用于定时器&#xff0c;头文件&#xff1a;unistd.h 以下是简单小程序&#xff1a; usl…

linux下定时器的实现(select+线程)

更好的计时器类实现&#xff1a; LINUX RTC机制实现计时器类很多时候需要在LINUX下用到定时器&#xff0c;但像setitimer()和alarm()这样的定时器有时会和sleep()函数发生冲突&#xff0c;这样就给编程带来了很大的困难。 写了一个定时器的类&#xff0c;使用select进行精确…

32位机下的sizeof()

先申明一下&#xff0c;下面的程序都是运行在32位机上&#xff0c;默认是4字节对齐方式。 char str[] “www.ibegroup.com” char *p str ; int n 10; 请计算 sizeof (str ) &#xff1f;&#xff08;1&#xff09; sizeof ( p ) &#xff1f;&#xff08;2&#xff09; s…

Select()系统调用及文件描述符集fd_set的应用 .

Select()系统调用及文件描述符集fd_set的应用在网络程序中&#xff0c;一个进程同时处理多个文件描述符是很常见的情况。select()系统调用可以使进程检测同时等待的多个I/O设备&#xff0c;当没有设备准备好时&#xff0c;select()阻塞&#xff0c;其中任一设备准备好时&#x…

windows PE Image 文件分析(5)--- .rsrc 节与 resource table

转自&#xff1a;http://www.sgoldcn.com/simple/?t1876.html PE 文件所有使用的 resource table 非常复杂&#xff0c;一个典型的 windows GUI 应用程序普遍都使用到了 7 个左右的资源。 1. windows 中的资源 在 WinUser.h 文件里定义了 windows 中所使用的全部资源&#…

POJ-2201 Cartesian Tree【笛卡尔树】

题目链接&#xff1a;http://poj.org/problem?id2201 题目大意&#xff1a; 让你构造一棵笛卡尔树。 笛卡尔树的节点含有2个值&#xff0c;1个key&#xff0c;一个value&#xff0c;其中key是主键&#xff0c;value是辅键。一棵笛卡尔树就是&#xff1a;key升序&#xff0c…

解读WINCE 5.0 KITL代码流程

摘要&#xff1a;KITL是PLATFORM BUILDER中的一个亮点&#xff0c;提供了和本地调试类似的断点、变量跟踪、内存查看等手段&#xff0c;如果没有KITL&#xff0c;嵌入式调试应该只能用串口打印消息来看了&#xff0c;工作效率大大下降。本文以实现最简单的SERIAL KITL为目的&am…

HDU-1050 Moving Tables

题目链接&#xff1a;http://acm.hdu.edu.cn/showproblem.php?pid1050 题目大意&#xff1a; 和活动安排相似的一道题&#xff0c;贪心就可以了。但是自己wrong了半个小时&#xff0c;也不知道哪里错了。。。悲剧。 之后用另外的思路写出来了&#xff0c;就是求走廊的最大重…

hdu 1074 doing homework 状态dp

题意&#xff1a;学生要完成各科作业, 各科老师给出交作业的期限和学生完成该科所需时间, 如果逾期一天则扣掉一单位学分, 要你求出完成所有作业而被扣最小的学分, 并将完成作业的顺序输出.解题思路&#xff1a;假设给总共要做的作业为n&#xff0c;我们可以用一个整数m来保存n…

【转】经典的图论算法C++描述

http://www.yuanma.org/data/2006/0824/article_1398.htm 本标程介绍了一些经典的图论算法&#xff0c;C描述。 #include < cstring > // 常量定义&#xff1a; const int maxV 100 ; const double Inf 1e100; // const int Inf2000000000; // Graph类定义&#xff1a;…

list_entry剖析与验证

/* &((type *)0)->member&#xff1a;   把“0”强制转化为指针类型&#xff0c;则该指针一定指向“0”&#xff08;数据段基址&#xff09;。因为指针是“type *”型的&#xff0c; 所以可取到以“0”为基地址的一个type型变量member域的地址。那么这个地址也就等于m…

c语言数据结构补齐原则

/*原则1、数据成员对齐规则&#xff1a;结构&#xff08;struct或联合union&#xff09;的数据成员&#xff0c;第一个数据成员放在offset为0的地方&#xff0c;以后每个数据成员存储的起始位置要从该成员大小的整数倍开始&#xff08;比如int在32位机为4字节&#xff0c;则要从…

城市旅游问题

在你要去的城市中,都有四个机场,且在一个平行四边形上,他们有地铁与相临的机场相连.城市间只有飞机可达.机票与地铁是按里程计算的, 机票是统一的,地铁由城市自定.由一个城市去另一个城市, 要找你在A城市到B城市的位置可以使花费最少; #include<stdio.h>#include<i…

[转]C语言系统资源控制(getrlimit setrlimit)

转自 http://hi.baidu.com/phps/blog/item/7e3ba44410cf9580b3b7dc81.html 每一个进程都有自己的一组资源限制&#xff0c;在(*)inux系统中我们可以通过#include <sys/resource.h>int getrlimit(int resource, struct rlimit *rlim);int setrlimit(int resource, const s…

Android的IPC机制Binder的详解(转发)

第一部分 Binder的组成 1.1 驱动程序部分驱动程序的部分在以下的文件夹中&#xff1a; Java代码 kernel/include/linux/binder.h kernel/drivers/android/binder.c Java代码kernel/include/linux/binder.h kernel/drivers/android/binder.c [java] view plaincopyprin…

为什么我希望用C而不是C++来实现ZeroMQ

开始前我要先做个澄清&#xff1a;这篇文章同Linus Torvalds这种死忠C程序员吐槽C的观点是不同的。在我的整个职业生涯里我都在使用C&#xff0c;而且现在C依然是我做大多数项目时的首选编程语言。自然的&#xff0c;当我从2007年开始做ZeroMQ(ZeroMQ项目主页)时&#xff0c;我…

Linux内核链表基础

1、内核链表的定义在include/linux/list.h struct list_head { struct list_head *next, *prev; }; 容易看出&#xff0c;Linux内核链表为双向链表。 2、Linux链表与普通链表区别 我们通常定义的链表是在链表节点中嵌入元素,比如 struct MyList { int StudentID; /* 被…

8点FFT的C语言实现

程序原理来源&#xff1a;程佩青的《数字信号处理教程》中按时间抽选的基-2 FFT蝶形图 说明&#xff1a;&#xff08;1&#xff09;处理的对象是复数&#xff0c;使用的是纯C语言 &#xff08;2&#xff09;程序针对的是N8的FFT &#xff08;3&#xff09;因为是按时间抽选&am…

ALSA驱动、设备函数调用关系

soc_probe> snd_soc_register_card或者snd_soc_register_dai或者snd_soc_register_platform或者snd_soc_register_codec> snd_soc_instantiate_cards> snd_soc_instantiate_card> codec_dev->probe> uda134x_soc_probe> snd_soc_new_pcms> soc_new_pcm…

MMU(memory management unit)主要功能介绍

MMU是Memory Management Unit的缩写&#xff0c;中文名是内存管理单元&#xff0c;它是中央处理器&#xff08;CPU&#xff09;中用来管理虚拟存储器、物理存储器的控制线路&#xff0c;同时也负责虚拟地址映射为物理地址&#xff0c;以及提供硬件机制的内存访问授权。 一、MMU…

诙谐幽默的 bus/driver/device关系

这里让我们聚焦Linux的设备模型&#xff01; 顾名思义&#xff0c;设备模型是关于设备的模型&#xff0c;对咱们写驱动的和不写驱动的人来说&#xff0c;设备的概念就是总线和与其相连的各种设备了。电脑城的IT工作者都会知道设备是通过总线连到计算机上的&#xff0c;而且还需…

MTK编程小结:域名解析

MTK编程小结 域名解析对于网络编程而言&#xff0c;硬编码IP到客户端&#xff0c;定是下下策&#xff0c;为此&#xff0c;我们需要域名解析功能。MTK对此有类似的解决之道&#xff0c;即soc_gethostbyname&#xff0c;下面将它的用法简单叙述如下soc_gethostbyname( kal_bool …

MTK-Phonebook bootup 启动流程

MTK-Phonebook bootup 一、开机流程 开机之后&#xff0c;初始化时&#xff0c;在InitializeAll()中call mmi_phb_init_protocol(),设置如下几个PS消息CBack函数&#xff1a; SetProtocolEventHandler(mmi_phb_ind_startup_finish, PRT_PHB_STARTUP_FINISH_IND); SetProtocol…

linux 工作队列

INIT_DELAYED_WORK()是一个宏,我们给它传递了两个参数.&hub->leds和led_work.对设备驱动熟悉的人不会觉得INIT_DELAYED_WORK()很陌生,其实鸦片战争那会儿就有这个宏了,只不过从2.6.20的内核开始这个宏做了改变,原来这个宏是三个参数,后来改成了两个参数,所以经常在网上看…

Visual C 中 Inline ASM 内联汇编的使用

一、 优点 使用内联汇编可以在 C/C 代码中嵌入汇编语言指令&#xff0c;而且不需要额外的汇编和连接步骤。在 Visual C 中&#xff0c;内联汇编是内置的编译器&#xff0c;因此不需要配置诸如 MASM 一类的独立汇编工具。这里&#xff0c;我们就以 Visual Studio .NET 2003 为背…

FreeBSD虚拟内存系统的启动

摘要 本报告介绍FreeBSD虚拟内存子系统的启动过程。FreeBSD虚拟内存子系统是许多其他子系统的基础&#xff0c;譬如文件子系统、设备子系统、进程子系统等等&#xff0c;而且它与系统设备、体系结构密切相关&#xff0c;特别是从实模式到保护模式下的映射&#xff0c;需要完成大…

Webkit自带谷歌浏览器实例分析(1)

这个程序是用source insight阅读的&#xff0c;&#xff0c;&#xff0c;source insight怎一个强字了得&#xff1f;&#xff01; 从main函数开始分析&#xff1a; int main (int argc, char* argv[]) { gtk_init (&argc, &argv); /*初始化gtk整个实例&#…

arm linux 从入口到start_kernel 代码分析——head.S分析——1

本文针对arm linux, 从kernel的第一条指令开始分析,一直分析到进入start_kernel()函数.我们当前以linux-2.6.19内核版本作为范例来分析,本文中所有的代码,前面都会加上行号以便于和源码进行对照.例:在文件init/main.c中:00478: asmlinkage void __init start_kernel(void)前面的…

2011年度变态迷宫数学题:从左边入口处的 2011 进去,在迷宫里转悠,最后变成 2012 从右边出来。你可以在迷宫里转圈,可以重复之前走过的路,但不能往回退着走。

这是昨天在人人看见的一个题目。所以没事干&#xff0c;就解决了一下这个题目。思路就是广域搜索&#xff0c;比较笨的方法&#xff0c;但是能解决问题。不知道谁有更好的方法&#xff0c;给个建议。 题目要求的图形如右所示。 代码&#xff1a; #include <iostream> #…

C语言规则总结一

最近又重新认真的学习了一下C语言的基础&#xff0c;看到很多值得注意的地方&#xff0c;现在总结下来&#xff0c;共大家谈论&#xff0c;也方便以后查阅。 本文章适合已经掌握一定C语言基础的朋友&#xff01; 声明和初始化 1. 如何决定使用哪种数值类型&#xff1f; …

invalid use of incomplete struct Ui::Widget 解决方法

好久没搞Qt&#xff0c;今天遇到了点小问题&#xff0c;几步搞定&#xff0c;现在记忆不是很好&#xff0c;在这里记下来&#xff0c;作为以后查阅资料。 我在修改UI界面的名字&#xff0c;在build程序的时候&#xff0c;总是有这样的错误&#xff1a; 出错的最大可能&#xff…

linux获取系统当前时间

最近在查关于Linux下时间编程的问题&#xff1a;1. Linux下与时间有关的结构体struct timeval{ int tv_sec; int tv_usec; }; 其中tv_sec是由凌晨开始算起的秒数&#xff0c;tv_usec则是微秒(10E-6 second)。 struct timezone{ int tv_minuteswest; int tv_dsttime; }; tv_minu…

Intel平台下Linux中ELF文件动态链接的加载、解析及实例分析(一): 加载

级别&#xff1a; 初级 王瑞川 (jeppeterone163.com), linux爱好者 2003 年 10 月 01 日 动态链接&#xff0c;一个经常被人提起的话题。但在这方面很少有文章来阐明这个重要的软件运行机制&#xff0c;只有一些关于动态链接库编程的文章。本系列文章就是要从源代码的层次来探…

单向链表的反转最简单方法

给出一个单向链表的header&#xff0c;要求经过处理变成反向&#xff0c;即原链表尾变为链表头&#xff0c;原链表头变成链表尾。 例如&#xff1a; 10->20->30->NULL 处理后变为&#xff1a; 30->20->10->NULL 我想&#xff0c;下面这应该…

伙伴算法剖析

1 。 什么是伙伴&#xff1f; a . 两个块大小相同 b . 两个块地址连续 c . 同属于一个大块&#xff0c;第 0 块和第 1 块是伙伴&#xff0c;第 2 块和第 3 块是伙伴&#xff0c;但是第 1 块和第 2 块不是伙伴&#xff09; 2 。伙伴位图 : 伙伴算法通过位…

union 共用体 联合体

共用体表示几个变量共用一个内存位置&#xff0c;在不同的时间保存不同的数据类型和不同长度的变量。在union中&#xff0c;所有的共用体成员共用一个空间&#xff0c;并且同一时间只能储存其中一个成员变量的值。1. 共用体声明和共用体变量定义其形式为:union 共用体名{数据类…

位域--C语言中的一种数据结构

今天看程序看到一种很奇怪的结构体声明方式&#xff0c;形式如下&#xff1a; Typedef struct{ Int a:2, b:1, c:3; }struct1; 请教了一下高人&#xff0c;才知道原来type *:*;的这种用法是C语言里边为了节省存储空间并使处理简单而提供的一种数据结构&#xff0c;称之为“位…

Linux驱动修炼之道-SPI驱动框架源码分析(中)

努力成为linux kernel hacker的人李万鹏原创作品&#xff0c;为梦而战。转载请标明出处 http://blog.csdn.net/woshixingaaa/archive/2011/06/29/6574220.aspx 这篇来分析spi子系统的建立过程。 嵌入式微处理器访问SPI设备有两种方式&#xff1a;使用GPIO模拟SPI接口的工作时序…

Linux驱动修炼之道-SPI驱动框架源码分析(上)

努力成为linux kernel hacker的人李万鹏原创作品&#xff0c;为梦而战。转载请标明出处 http://blog.csdn.net/woshixingaaa/archive/2011/06/29/6574215.aspx Linux驱动修炼之道-SPI驱动框架源码分析(中) Linux驱动修炼之道-SPI驱动框架源码分析(下) SPI协议是一种同步的串…

Linux下SPI驱动分析

Linux下SPI总线驱动有通用接口&#xff0c;一般的SPI设备驱动使用这个驱动接口实现设备驱动。分析驱动最好是先了解核心代码&#xff0c;然后从具体设备分析入手&#xff0c;然后从下至上&#xff0c;了解整个框架&#xff0c;再从上到下分析&#xff0c;理解透彻。 以下分析内…

小议大小端模式对C语言的共用体结构的影响

小议大小端模式对C语言的共用体结构的影响 1、一些问题 问题1 view plaincopy to clipboardprint?#include "stdio.h" union { int i; char ch[2]; }key; main() { key.i65*25666; printf("%c\t%c\n",key.ch[0],key.ch[1]); …

C语言链表基础

实现一个简单的链表 #include<iostream> #include<cstdio> #include<cstdlib>using namespace std;typedef struct jiaowu {long num; //学号float score; //成绩struct jiaowu *next; }Node;//创建头结点&#xff0c;赋初值为0 Node* CreateInfoNode()…

C语言字节对齐、结构体对齐最详细的解释

文章最后本人做了一幅图&#xff0c;一看就明白了&#xff0c;这个问题网上讲的不少&#xff0c;但是都没有把问题说透。 一、概念    对齐跟数据在内存中的位置有关。如果一个变量的内存地址正好位于它长度的整数倍&#xff0c;他就被称做自然对齐。比如在32位cpu下&#xf…

Linux系统内核抢占补丁的原理(代码)

CPU在内核中运行时并不是处处不可抢占的&#xff0c;内核中存在一些空隙&#xff0c;在这时进行抢占是安全的&#xff0c;内核抢占补丁的基本原理就是将SMP可并行的代码段看成是可以进行内核抢占的区域。 Linux 2.4内核正好细化了多CPU下的内核线程同步机构&#xff0c;对不可…

原创:PHP内核研究:HASH表和变量

PHP HASH表 在PHP中,所有的数据 无论变量,常量,类,属性 都用Hash表来实现. 先要说说 HASH表 [c]typedef struct bucket { ulong h; /* Used for numeric indexing */ uint nKeyLength; //key长度 void *p…

Linux socket编程-最简单的服务器和客户端程序

复习了一下Linux socket编程&#xff0c;写了最简单的服务器和客户端程序&#xff0c;测试通过&#xff0c;其中服务器端程序采用循环忙等待&#xff0c;后面会改成多线程及线程池机制 服务器端程序 #include <cstdlib>#include <iostream>#include <cstring&…

websocket 连接 C Server的尝试

声明&#xff1a;本文为斯人原创&#xff0c;全部为作者一一分析得之&#xff0c;有不对的地方望赐教。欢迎转载&#xff0c;转载请注明出处 。本文地址&#xff1a;http://imsiren.com/archives/629websocket: WebSocket 规范的目标是在浏览器中实现和服务器端双向通信.双向通…

POJ 2049 走迷宫选取经过门最少的路线 BFS搜索

很经典的BFS搜索 走迷宫选取经过门最少的路线&#xff0c;这题POJ测试数据设计不全面&#xff0c;changeDir数组赋值错误也可以过。。。 主要图的数据结构存储方式和算法实现参考了http://blog.csdn.net/bobten2008/article/details/5093307 (1)首先是建图, 由于输入给的都是…

Linux 常用C函数(内存控制篇)

Linux 常用C函数(内存控制篇)2007-03-22 11:43calloc&#xff08;配置内存空间&#xff09; 相关函数 malloc&#xff0c;free&#xff0c;realloc&#xff0c;brk 表头文件 #include <stdlib.h> 定义函数 void *calloc(size_t nmemb&#xff0c;size_t size); 函数说明…

Linux 常用C函数(用户组篇1)

Linux 常用C函数(用户组篇1)2007-03-22 11:40endgrent&#xff08;关闭组文件&#xff09; 相关函数 getgrent&#xff0c;setgrent表头文件 #include<grp.h>#include<sys/types.h>定义函数 void endgrent(void);函数说明 endgrent()用来关闭由getgrent()所打开的密…

学习内核---Linux网卡驱动分析

Linux网卡驱动分析 学习应该是一个先把问题简单化&#xff0c;在把问题复杂化的过程。一开始就着手处理复杂的问题&#xff0c;难免让人有心惊胆颤&#xff0c;捉襟见肘的感觉。读Linux网卡驱动也是一样。那长长的源码夹杂着那些我们陌生的变量和符号&#xff0c;望而生畏便是…

把二元查找树转变成排序的双向链表 java版本

把二元查找树转变成排序的双向链表 题目&#xff1a; 输入一棵二元查找树&#xff0c;将该二元查找树转换成一个排序的双向链表。 要求不能创建任何新的结点&#xff0c;只调整指针的指向。 10 / \ 6 14 / \ / \ 4 8 12 16 转换成双向链表 46810121416。 首…

用epoll实现异步的Echo服务器

epoll是Kernel 2.6后新加入的事件机制&#xff0c;在高并发条件下&#xff0c;远优于select. 用个硬件中的例子吧&#xff0c;可能不太恰当&#xff1a;epoll相当于I&#xff0f;O中断&#xff08;有的时候才相应&#xff09;&#xff0c;而select相当于轮询&#xff08;总要反…

c++类和对象新手保姆级上手教学(上)

前言&#xff1a; c其实顾名思义就是c语言的升级版&#xff0c;很多刚学c的同学第一感觉就是比c语言难学很多&#xff0c;其实没错&#xff0c;c里的知识更加难以理解可以说杂且抽象&#xff0c;光是类和对象&#xff0c;看起来容易&#xff0c;但想完全吃透&#xff0c;真的挺…

rust函数 stuct struct方法 关联函数

本文结合2个代码实例主要介绍了rust函数定义方法&#xff0c;struct结构体定义、struct方法及关联函数等相关基础知识。 代码1&#xff1a; main.rc #[derive(Debug)]//定义一个结构体 struct Ellipse {max_semi_axis: u32,min_semi_axis: u32, }fn main() {//椭圆&#xff0…

NtQueryObject 获得内核对象的信息

导读 玩过电脑的都知道&#xff0c;Widnows任务管理器&#xff0c;我们经常用它查看机器的CPU内存等信息&#xff0c;也用它杀死一些卡主的进程。 而作为开发人员&#xff0c;我们为了更了解进行的运行状况&#xff0c;就不得不说另外两个工具&#xff1a; procexp.exe&…

Google面试题(六)

题目&#xff1a;对现在的Stack&#xff08;栈&#xff09;数据结构进行改进&#xff0c;加一个min()功能&#xff0c;使之能在常数&#xff0c;即O(1)&#xff0c;时间内给出栈中的最小值。可对push()和pop()函数进行修改&#xff0c;但要求其时间复杂度都只能是O(1)。 分析&a…

Java的类与Golang的结构体的区别

Java作为一门面向对象&#xff08;OOP&#xff09;的编程语言&#xff0c;它有类&#xff08;class&#xff09;的存在&#xff0c;而对于Golang&#xff0c;它不完全遵从OOP编程语言的设计思想&#xff0c;但它也有类似Java类的结构存在&#xff0c;那就是结构体&#xff08;s…

Rust 程序设计语言学习——结构体

结构体和元组类似&#xff0c;它们都包含多个相关的值。和元组一样&#xff0c;结构体的每一部分可以是不同类型。但不同于元组&#xff0c;结构体需要命名各部分数据以便能清楚的表明其值的意义。由于有了这些名字&#xff0c;结构体比元组更灵活&#xff1a;不需要依赖顺序来…

Python的struct

Python模块——struct&#xff08;字节流&#xff0c;组包拆包实现&#xff09; Python使用struct处理二进制(pack和unpack用法) 浅析Python中的struct模块 Python模块学习&#xff1a;struct 数据格式转换 struct.pack("III",firstInt,secondInt,thirdInt)

linux 进程地址空间的一步步探究

我们知道&#xff0c;在32位机器上linux操作系统中的进程的地址空间大小是4G,其中0-3G是用户空间&#xff0c;3G-4G是内核空间。其实&#xff0c;这个4G的地址空间是不存在的&#xff0c;也就是我们所说的虚拟内存空间。 那虚拟内存空间是什么呢&#xff0c;它与实际物理内存空…

poj 1659 Havel—Hakimi定理

Havel—Hakimi定理&#xff1a;由非负数组成的非增序列s:d1&#xff0c;d2&#xff0c;&#xff0c;dn&#xff08;n>2&#xff0c;d1>1&#xff09;是可图的&#xff0c;当仅当序列s1&#xff1a;d2-1&#xff0c;d3-1&#xff0c;&#xff0c;dd11 -1,dd12&#xff0c;…

golang 实现 struct、json、map 互相转化

这里填写标题1. golang 实现 struct、json、map 互相转化1.1. Json 和 struct 互换1.1.1. Json 转 struct1.1.2. truct 转 json1.2. json 和 map 互转1.2.1. json 转 map1.3. map 转 Json1.4. map 和 struct 互转1.4.1. map 转 struct1.4.2. struct 转 map1. golang 实现 struc…

c语言结构体中的冒号的用法

结构体中常见的冒号的用法是表示位域。 有些信息在存储时&#xff0c;并不需要占用一个完整的字节&#xff0c; 而只需占几个或一个二进制位。例如在存放一个开关量时&#xff0c;只有0和1 两种状态&#xff0c; 用一位二进位即可。为了节省存储空间&#xff0c;并使处…

Linux用户空间与内核空间 理解和总结

&#xff08;1&#xff09;让我们忽略Linux对段式内存映射的支持。在保护模式下&#xff0c;我们知道无论CPU运行于用户态还是核心态&#xff0c;CPU执行程序所访问的地址都是虚拟地址&#xff0c;MMU 必须通过读取控制寄存器CR3中的值作为当前页面目录的指针&#xff0c;进而根…

netlink由于版本问题注意事项

1、选一个没有用到的协议类型&#xff0c;注意要避开netlink.h中已经定义好的类型。注意保证内核层和用户层的协议类类型的一致。也就是说内核层创建 netlink函数netlink_kernel_create的第一个参数和用户层创建socket的socket函数的第三个参数要一致。否则是不能 建立连接的。…

platform设备驱动全透析

原创作品&#xff0c;允许转载&#xff0c;转载时请务必以超链接形式标明文章 原始出处、作者信息和本声明。否则将追究法律责任。 http://21cnbao.blog.51cto.com/109393/3376091.1 platform总线、设备与驱动 在Linux 2.6的设备驱动模型中&#xff0c;关心总线、设备和驱动这…

IP helper: GetIfTable 函数可以得到很多网络状态信息:网络流量,网络状态等(zz)

IP helper: GetIfTable 函数可以得到很多网络状态信息&#xff1a;网络流量&#xff0c;网络状态等&#xff1a; 收藏 GetIfTable&#xff0c; 编程实现查询网络状态[含c代码] 前两天因为其他原因需要编写一段查询网络状态的代码&#xff0c;一开始的想法是查询注册表中的某…

代码运行时间的测量方法【linux/window】

一&#xff0c;返回单位为毫秒 #include<windows.h> DWORD dwStart GetTickCount(); // 测试代码 DWORD dwTime GetTickCount() - dwStart; 注意&#xff1a;GetTickCount()精确度有限&#xff0c;跟CPU有关&#xff0c;一般精确度在16ms左…

Swift之struct二进制大小分析

随着Swift的日渐成熟和给开发过程带来的便利性及安全性&#xff0c;京喜App中的原生业务模块和基础模块使用Swift开发占比逐渐增高。本次讨论的是struct对比Class的一些优劣势&#xff0c;重点分析对包体积带来的影响及规避措施。 一、基础知识 1、类型对比 引用类型&#xff…

socket资料整理

图2Socket所处的位置 图3socket之间的通讯图 介绍  Socket 编程让你沮丧吗&#xff1f;从man pages中很难得到有用的信息吗&#xff1f;你想跟上时代去编Internet相关的程序&#xff0c;但是为你在调用 connect() 前的bind() 的结构而不知所措&#xff1f;等等… 好在我…

linux 学习- 编程基础之时间编程

头文件&#xff1a; time.h #include <time.h>#include <stdio.h> int main(void){ struct tm *local; time_t t; /* 获取日历时间 */ ttime(NULL); /* 将日历时间转化为本地时间 */ locallocaltime(&t); /*打印当前的小时值*/ …

kthread_create创建线程

1 使用kthread_create创建线程&#xff1a; struct task_struct *kthread_create(int (*threadfn)(void *data), void *data, const char *namefmt, ...);这个函数可以像printk一样传入某种格式的线程名…

linux usb驱动框架 3

下面我们来分析一下usb-skeleton的源码吧。这个范例程序可以在linux-2.6.17/drivers/usb下找到&#xff0c;其他版本的内核程序源码可能有所不同&#xff0c;但相差不大。大家可以先找到源码看一看&#xff0c;先有个整体印象。 之前已经提到&#xff0c;模块先要向内核注册初始…

hdoj 1242 Rescue(bfs)

【题目大意】&#xff1a;某人a被关在了监狱里&#xff0c;监狱里有路有墙有看守者x&#xff0c;他的朋友们r想去营救他出来&#xff0c;但没前进一个需要消耗时间1&#xff0c;每遇到一个守卫又要花费时间1去杀死他&#xff0c;问最少多少时间可以把a救出来&#xff0c;救不出…

Linux设备驱动简析—基于I2C的E2PROM驱动

/* *By Neil Chiao ( neilchiao at gmail.com) *转载请注明出处&#xff1a; neilengineer.cublog.cn*/ 1、I2C总线原理 I2C是一种常用的串行总线&#xff0c;由串行数据线SDA 和串线时钟线SCL组成。 系统的I2C模块分为I2C总线控制器和I2C设备。I2C总线控制器是CPU提…

对FrameBuffer的简单解释和用法示例

大家都知道Unix/Linux系统是由命令驱动的。那么最基本的系统是命令行的&#xff08;就是想DOS一样的界面&#xff09;。X&#xff0d;Window&#xff0d;System是Unix/Linux上的图形系统&#xff0c;它是通过X&#xff0d;Server来控制硬件的。但有一些Linux的发行版在引导的时…

托盘制作心得

制作的主要涉及到的API只有Shell_NotifyIcon 虽然API只有一个&#xff0c;但是这个API的参数的数据结构可是看的让人很烦的。 NOTIFYICONDATA typedef struct _NOTIFYICONDATA { DWORD cbSize; //结构大小 byte计算 HWND hWnd; //创建托盘的程序窗口句柄,也就是应用程序窗…

typedef的四个用途和两个陷阱

用途一&#xff1a; 定义一种类型的别名&#xff0c;而不只是简单的宏替换。可以用作同时声明指针型的多个对象。比如&#xff1a; char* pa, pb; // 这多数不符合我们的意图&#xff0c;它只声明了一个指向字符变量的指针&#xff0c; // 和一个字符变量&#x…

链接的错误 fatal error C1007: unrecognized flag '-typedil' in 'p2'

链接的错误 fatal error C1007: unrecognized flag -typedil in p2 (2010-12-16 14:31:30) 标签&#xff1a; 杂谈 分类&#xff1a; c/cplusplus 用vc2005编译一个项目出错。 fatal error C1007: unrecognized flag -typedil in p2 LINK : fatal error LNK1257: code generat…

用enum提高程序清晰度zz

enum的秘密<一>&#xff1a;enum是“用户自定义类型” 呵呵&#xff0c;enum在实际中应用比较少&#xff0c;所以你会忽略它。但是&#xff0c;在这里&#xff0c;我告诉你&#xff0c;enum 和 struct、class一样&#xff0c;都是用户自定义类型。 对呀&#xff01;en…

Lcd帧缓冲设备

帧缓冲(framebuffer)是Linux为显示设备提供的一个接口&#xff0c;是把显存抽象后的一种设备&#xff0c;它允许上层应用程序在图形模式下直接对显示缓冲区进行读写操作&#xff0c;这种操作是抽象的&#xff0c;统一的。用户不必关心物理显存的位置&#xff0c;换页机制等等具…

ap_hook_handler的定义在哪?

近日在看apache的源码&#xff0c;在他的module的定义中&#xff0c;ap_hook_handler是一个非常重要的函数。用来在apache中注册你的自定义module中的callback函数。 遍搜ap_hook_handler&#xff0c;寻不得在哪定义的。最后发现&#xff0c;这家伙把所有的hook函数都定义在宏里…

Android Suspend/resume 过程分析.

当系统未处于 Suspend 状态下用户按下Power键时会在 /dev/input/event0 节点中产生一个信号, 上层的 WindowManager 会收到这个上节点的变化而得知当前应该进入休眠状态, 通知PowerManagerService, 它会做如下调用, private int setScreenStateLocked(boolean on) {int err Po…

新手学堂:应用程序在Linux上的执行过程

执行文件是如何在shell中被"执行"的。本文中尽可能少用一些源码&#xff0c;免得太过于无聊&#xff0c;主要讲清这个过程&#xff0c;感兴趣的同学可以去查看相应的源码了解更多的信息。 1.父进程的行为: 复制&#xff0c;等待 执行应用程序的方式有很多&#xff0c…

关于linux内核中的__attribute__ ((packed))

来源&#xff1a; http://jimmy-lee.blog.hexun.com/8001013_d.html __attrubte__ ((packed)) 的作用就是告诉编译器取消结构在编译过程中的优化对齐,按照实际占用字节数进行对齐。 #define __u8 unsigned char #define __u16 unsigned short /* __attribute__ ((packed)) 的…

嵌入式Linux之我行——S3C2440上MMC/SD卡驱动实例开发讲解(一)

嵌入式Linux之我行——S3C2440上MMC/SD卡驱动实例开发讲解(一)&#xff08;转自&#xff1a;http://www.cublog.cn/u3/101649/showart_2232724.html&#xff09;嵌入式Linux之我行&#xff0c;主要讲述和总结了本人在学习嵌入式linux中的每个步骤。一为总结经验&#xff0c;二希…

zoj 2760 How Many Shortest Path(Floyd+枚举判边是否在最短路上+最大流)

【题目大意】&#xff1a;给出n个点&#xff0c;和n*n的矩阵表示有向图。maz[i][j]为-1表示i到j没有路径&#xff1b;不为-1则表示i到j的路径长度。给出一个s和t&#xff0c;要求s到t的没有公共边的最短路有多少条&#xff1f;如果s和t重合输出inf。 【解题思路】:用floyd直接求…

VC中 #pragma 小结

一&#xff1a;#pragma warning指令 该指令允许有选择性的修改编译器的警告消息的行为 指令格式如下: #pragma warning( warning-specifier : warning-number-list [; warning-specifier : warning-number-list...] #pragma warning( push[ ,n ] ) #pragma warning( pop ) 主要…

我所认识的EXT2(一)

前言&#xff1a; 本文是笔者自己在学习文件系统中的一些体会&#xff0c;写出来和大家分享一下。本文首先是介绍了下文件系统的一些理论概念&#xff0c;然后分析了ext2文件系统的原理和部分源码。 文件系统是什么&#xff1a; 人们在认识一件陌生事物时一开始总是从事物的定…

#pragma pack(整理)

目录 一、n字节的对齐方式 二、#pragma pack(n) 对齐用法详解 编辑本段 一、n字节的对齐方式 VC对结构的存储的特殊处理确实提高CPU存储变量的速度&#xff0c;但是有时候也带来了一些麻烦&#xff0c;我们也屏蔽掉变量默认的对齐方式&#xff0c;自己可以设定变量的对齐方式。…

shmget() -- 建立共享内存

#include <sys/ipc.h>#include <sys/shm.h>int shmget(key_t key, size_t size, int shmflg);key_t key----------------------------------------------- key标识共享内存的键值: 0/IPC_PRIVATE。 当key的取值为IPC_PRIVATE&#xff0c;则函数shmget()将创建一…

I2C总线的EEPROM(24C08)Linux驱动

基于Linux 2.6.30内核 符合Linux驱动架构模型 针对24C08的Page读写做了优化。 完全模拟文件读写方式&#xff0c;支持lseek操作。 这个代码中&#xff0c;包含了设备的地址&#xff0c;在i2c_add_driver时会去探测该地址上是否有设备。 但通常&#xff0c;做板级开发时&…

使用GetIfTable获取MIB_IFTABLE和MIB_IFROW获取网络接口信息

#include <iphlpapi.h> #pragma comment ( lib, "iphlpapi.lib") 使用GetIfTable()获取各个端口信息的时候用到的 _MIB_IFTABLE结构: typedef struct _MIB_IFTABLE { DWORD dwNumEntries; //得到的端口个数 MIB_IFROW table[ANY_SIZE]; //得到的各个端…

多项式相乘求组合数RC(n,r)——链表实现

设集合S{n1*e1, n2*e2, ... nt*et}, n1 n2 ...nt n, 从S中任取r个&#xff0c;求其组合数RC(n, r)。 设多项式 则RC(n,r)就是多项式中xr的系数&#xff0c; 即 RC(n, r) ar。 根据上述方法&#xff0c;编程实现&#xff1a;求任意的从S中任取r个的组合数RC(n,r)&#xff…

数据结构--栈的操作

#include <stdio.h>#include <stdlib.h>#define Maxsize 100 /*设顺序表的最大长度为100,可依具体情况分配空间*///#define NULL -1typedef int datatype; typedef struct { datatype stack[Maxsize]; int top;/*栈顶指针*/ }SeqStack;//顺序栈类型定义 //构造…

PTR_ERR

内核里返回指针的话&#xff0c; 把&#xff0d;1 &#xff5e; &#xff0d;1000 转换为指针 作为错误码 内核中许多函数用返回值[-1L,-1000L]代表错误,这部分空间没有被影射.有些地方的返回值类型是指针,那么 如果没有检测返回值就访问该指针的话,那么就发生内核缺页异常,非…

poj_3923 Ugly Windows

Ugly Windows Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 822 Accepted: 228 题目链接&#xff1a;http://poj.org/problem?id3923 Description Sheryl works for a softwarecompany in the country of Brada. Her job is to develop a Windows opera…

Linux2.6内核的vivi分区及内核MTD分区

与Linux2.4内核相比&#xff0c;Linux2.6内核在性能、模块支持、可用性、可测量性等方面有大幅度的提高。Linux2.6内核取代2.4内核是大势所趋。 ARM9 S3C2410微处理器是一款由SAMSUNG公司为手持终端设计的低价格、低功耗、高性能&#xff0c;基于ARM920T核的微处理器。它与Lin…

转:编写跨平台的软件入门——有关字节对齐

标题&#xff1a;编写跨平台的软件入门——有关字节对齐2008-03-18 09:40:29一&#xff0c; 为什么要跨平台&#xff1f;你想过把你的 Windows 上编写的程序在 Linux 编译运行吗&#xff0c;以及在 Mac 或其他 OS 上运行等等&#xff1f;反过来也一样&#xff1f;这…

Golang struct结构体内部的反引号该如何定义字段编码生成json字符串的写法

package main import ( "encoding/json" "fmt" ) //父对象 type Human struct { Name string json:"english_name" //把struct编码成json字符串时&#xff0c;Name字段的key是english_name&#xff0c;而不是Name Age int…

LINUX 网络协议栈实现分析-SKBUFF 的实现

本文是我尝试分析 LINUX 网络协议栈实现的一系列文章中的第一篇&#xff0c;主要分析LINUX 网络协议栈中 SKBUFF 的实现。分析以 LINUX2.2.x 为基础&#xff0c;同时也包括了相同的描述对象在 LINUX2.4.x 中的新变化。本文引用的代码的版本分别是&#xff1a;LINUX2.2.25&#…

【详解】如何编写Linux下Nand Flash驱动 - 2 of 2

【详解】如何编写Linux下Nand Flash驱动 - 2 of 2 版本: 1.2 最后更新日期:2011-03-15 作者&#xff1a;crifan 邮箱:green-waste(At)163.com 2.1.11. Nand Flash中的特殊硬件结构 由于Nand Flash相对其他常见设备来说&#xff0c;比较特殊&#xff0c;所以&#xff0c;特…

hdoj 3586 Information Disturbing(二分答案+树dp判断)

【题目大意】&#xff1a;给出一个n,m以及n-1条边构成的网络&#xff0c;要求切去其所有的叶子节点&#xff0c;且代价和不能超过m&#xff0c;先在问你切去的边中的最大的边最小是多少。 【解题思路】&#xff1a;最大值最小问题&#xff0c;二分。之后用树dp判断。dp[u]表示u…

数据结构训练1(关于学生的姓名,学号,成绩分数的管理)

#include <iostream> using namespace std;struct stu { int No; //学号 char name[8]; char sex[4]; int co1; int co2; int co3; int co4; };double allavg(stu s[],int n) //第n个学生的总平均分 { int sum 0, m 0;if (s[n].co1 ! -1) { m; sum s[n].co1; }if…

Android中HAL如何向上层提供接口总结

参考文献: http://blog.csdn.net/luoshengyang/article/details/6573809 http://blog.csdn.net/hongtao_liu/article/details/6060734 建议阅读本文时先浏览以上两篇文章&#xff0c;本文是对上两篇文章在HAL对上层接口话题的一个总结. 1 什么是HAL HAL的全称是Hardware…

Linux内核源码中container_of详解

本文出自:http://blog.csdn.net/hongchangfirst 关于container_of的用法&#xff0c;可参考http://blog.csdn.net/hongchangfirst/article/details/7076225。其实就是解决了”如何通过结构中的某个变量的地址获取结构本身的指针“这样的问题。container_of实现了根据一个结构…

0/1背包问题的贪心算法

利用贪心算法解决0/1背包问题时&#xff0c;需要确定装入的原则&#xff0c;大致可分三类&#xff1a;按重量的大小&#xff0c;按价值的大小&#xff0c;按价值与重量比的大小来确定装入的顺序。 设有5个物品&#xff0c;重量分别为 2 2 6 5 4 &#xff0c;价值分别为 6 3 5 …

如何从文本文件读取数据到二维数组,如何在函数处理后返回二维数组的示例

需求背景&#xff1a;站点数据是文本文件&#xff0c;带制表符&#xff0c;且一行是站点某一时刻的所有要素记录。试验之前要进行数据校正、清除nodata、去除奇异值等等预处理工作。 一、首先读取数据 /*读取站点信息*/int n,m;float k;float site[32][6];FILE *fp;if((fpfop…

(转载)Linux内核网络设备操作部分阅读笔记

原文出处&#xff1a;http://tb.blog.csdn.net/TrackBack.aspx?PostId589444一、网络设备的初始化网络设备初始化就是调用具有__init 前缀的net_dev_init函数完成的&#xff0c;网络设备初始化包含两个部分&#xff08;在linux内核2.4办源代码分析大全一书的第550页有详细说明…

详解WinCE下USB Host驱动开发

WinCE下所有的驱动都是以DLL的形式&#xff0c;被device.exe进程加载的&#xff0c;所以每个驱动程序中都要实现DllEntry函数。 在注册表的HKEY_LOCAL_MACHINE/Drivers/USB/LoadClients/键下保存了USB Host的驱动程序信息。当我们第一次插入USB设备时。因为不存在这样的信息&am…

虚拟交换机项目Open vSwitch源码简单阅读--网络数据包流向

听说Xen Cloud Platform 就是用了这个来管理各个虚拟机直接的网络接口。大概看了一下文档&#xff0c;感觉特点是管理的控制接口很方便吧&#xff0c;这样虚拟机主机就可以方便的控制虚拟机的网络&#xff0c;进行一个网卡迁移到另外一个网卡上面等&#xff0c;动态配置这个vsw…

【golang】go 空结构体 详解 空结构体内容占用及大小

一、空结构体基础 空结构实例 和 空结构体变量 本质是一样的 1、所有空结构体地址都是一样的2、大小都为0&#xff08;最独特的&#xff09; package mainimport ("fmt""time""unsafe" )type EST struct { }func main() {// 一、基础// 空结构…

C++ STL自定义排序

更具体的看【速记】C STL自定义排序 - 知乎 (zhihu.com) sort sort第三个位置放的greater<int>和less<int>萌新可能会弄错&#xff0c;这两个单词不是更大和更小的意思&#xff0c;而是大于和小于&#xff0c;并且比较就是自定义排序中的前者和后者。 如果是less…

浅析dev目录下设备文件mknod节点gid,uid和mode的如何方便设置

init > handle_device_fd 收到uevent信息 > handle_device_event > static void handle_device_event(struct uevent *uevent){.../* are we block or char? where should we live? */if(!strncmp(uevent->path, "/block", 6)) {block 1;base …

grttimeofday和xtime的定时精度

作者&#xff1a;yuanlulu http://blog.csdn.net/yuanlulu 版权没有&#xff0c;但是转载请保留此段声明 客户反映&#xff0c;gettimeofday获取的时间us部分总是零。 自己修改测试代码有如下结果&#xff1a; ./lpc3250test 1 0 50000 divsor is 1 sec is 0 usec is 50000 *…

C语言——第七章

一&#xff0e; 在计算机中&#xff0c;位(bit)是表示和存储信息的最小单位&#xff0c;1B8bit。C语言提供一种在位一级进行操作的机制。它允许在一个结构体中以位为单位来指定其成员所占内存的长度&#xff0c;这种以位为单位的成员称为“位段”&#xff0c;或“位域”。例如&…

Clist::find()函数中怎么用结构体

.h中添加结构体或类typedef struct SOE_DES{ CString str_DevName;//设备名称 int int_SOECode;//由此参数得到事件记录的名字 unsigned short int Ia,Ib,Ic,Io; CString strDate; CString strTime; bool operator(const SOE_DES& src) const { //重载""操作符 …

C++ 结构体

struct 类型 git&#xff1a;https://github.com/weichangk/hellocpp/tree/master/struct C 语言的 struct 定义了一组变量的集合&#xff0c;C 编译器并不认为这是一种新的类型。 C 中的 struct 是一个新类型的定义声明。 结构体概述 struct 关键字将不同类型封装在一起&a…

CvScalar

一句话&#xff1a;CvScalar就是一个包含四个元素的结构体变量。 CvScalar定义可存放1—4个数值的数值&#xff0c;其结构如下。 typedef struct CvScalar { double val[4]; } CvScalar; ------------------------------------------------ CvScalar pt&#xff1b; 如果使…

opencv中关于直方图的相关函数

直方图   CvHistogram 多维直方图 typedef struct CvHistogram { int header_size; CvHistType type; int flags; int c_dims; int dims[CV_HIST_MAX_DIM]; int mdims[CV_HIST_MAX_DIM]; float* thresh[CV_HIST_MAX_DIM]; float* array; struct CvNode* root; CvSet* …

V4L2 - Linux下视频驱动模型

在DM6446平台&#xff0c;我们在GPP端一般使用MontaVista操作系统来进行程序控制。MontaVista作为一种嵌入式的Linux&#xff0c;和桌 面Linux类似&#xff0c;同样使用视频驱动V4L2&#xff08;Video For Linux Two&#xff09;来进行视频采集、输出。本文就V4L2的使用方式做简…

Argument list too long分析

这两天在Android eclair版本上增加WML浏览功能&#xff0c;编译时总是出现Argument list too long的错误。WebKit里源文件太多&#xff0c;没有WML时还可以编译过去&#xff0c;但加上了WML之后&#xff0c;命令行参数确实很长了&#xff0c;ar后面跟的参数大概都有几百K。奇怪…

recvmsg与sendmsg

recvmsg与sendmsg功能更为强大&#xff0c;当然用起来也更为复杂。 #include "sys/socket.h" ssize_t recvmsg(int sockfd, struct msghdr * msg, int flags); ssize_t sendmsg(int sockfd, struct msghdr * msg, int flags); 成功时候返回读写字节数&#xff0…

I/O端口 zz

关键词&#xff1a;设备管理、驱动程序、I/O端口、资源 申明&#xff1a;这份文档是按照自由软件开放源代码的精神发布的&#xff0c;任何人可以免费获得、使用和重新发布&#xff0c;但是你没有限制别人重新发布你发布内容的权利。发布本文的目的是希望它能对读者有用&#xf…

结构体长度

对齐&#xff1a; 现代计算机中内存空间都是按照byte划分的&#xff0c;从理论上讲似乎对任何类型的变量的访问可以从任何地址开始&#xff0c;但实际情况是在访问特定变量的时候经常在特定的内存地址访问&#xff0c;这就需要各类型数据按照一定的规则在空间上排列&#xff0c…

Linux下把kernel空间映射到用户进程空间

在mmap函数里&#xff0c;使用 remap_pfn_range函数。代码如下。注意要设置一下vma->vm_pgoff为你要map的io空间的物理地址对应的页。arm IO/ 内存统一编址 所以 #define io_remap_pfn_range(vma,from,pfn,size,prot) /remap_pfn_range(vma, from, pfn, size, prot)vm_sta…

子函数中设置校验方式mark,space

#include <stdio.h> /*标准输入输出定义*/ #include <stdlib.h> /*标准函数库定义*/ #include <unistd.h> /*Unix 标准函数定义*/ #include <sys/types.h> /*系统类型定义*/ #include <sys/stat.h> /*系统状态…

Linux 系统内核空间与用户空间通信的实现与分析

http://www-128.ibm.com/developerworks/cn/linux/l-netlink/?cadwcn-newsletter-linux 多 数的 Linux 内核态程序都需要和用户空间的进程交换数据&#xff0c;但 Linux 内核态无法对传统的 Linux 进程间同步和通信的方法提供足够的支持。本文总结并比较了几种内核态与用户态…

关于_attribute_((packed))

1. __attribute__ ((packed)) 的作用就是告诉编译器取消结构在编译过程中的优化对齐,按照实际占用字节数进行对齐&#xff0c;是GCC特有的语法。这个功能是跟操作系统没关系&#xff0c;跟编译器有关&#xff0c;gcc编译器不是紧凑模式的&#xff0c;我在windows下&#xff0c;…

DMA burst 基本概念

DMA和burst不是一个概念。 DMA传送不经过CPU的控制&#xff0c;假如硬盘的数据不能经过DMA控制器读到内存&#xff0c;那么每完成一次将硬盘的数据读出来&#xff0c;再存放到内存的操作&#xff0c;都要通过CPU运行几条读写指令来完成&#xff0c;这时CPU就做不了别的事了&am…

linux内核调度算法(2)--CPU时间片如何分配

内核在微观上&#xff0c;把CPU的运行时间分成许多分&#xff0c;然后安排给各个进程轮流运行&#xff0c;造成宏观上所有的进程仿佛同时在执行。双核CPU&#xff0c;实际上最多只能有两个进程在同时运行&#xff0c;大家在top、vmstat命令里看到的正在运行的进程&#xff0c;并…

address_space与基树

address_space结构体&#xff0c;是页高速缓存&#xff08;page cache&#xff09;的核心数据结构。在很多时候&#xff0c;内核在读写磁盘时都引用页高速缓存&#xff0c;新页被追加到页高速缓存以满足用户态进程的读请求。如果页不在高速缓存中&#xff0c;新页就被追加到高速…

ARM Linux 中断向量表建立流程

一般编写arm的裸机程序的时候&#xff0c;创建中断向量表就把它放在0x00000000~0x0000001c中&#xff0c;一般都放在这个位置上。但是中断向量表也可以放在0xffff0000~0xffff001c中&#xff0c;知道这是怎么设置的么&#xff1f;开始看到的时候真的有点奇怪&#xff0c;因为在学…

深入分析 Linux 内核链表

一、 链表数据结构简介 链表是一种常用的组织有序数据的数据结构&#xff0c;它通过指针将一系列数据节点连接成一条数据链&#xff0c;是线性表的一种重要实现方式。相对于数组&#xff0c;链表具有更好的动态性&#xff0c;建立链表时无需预先知道数据总量&#xff0c;可以随…

C和指针 的读书笔记(自己整理)

第2章 环境&#xff1a;翻译环境: 源代码转化成可执行的机器指令。 执行环境&#xff1a;用于实际执行代码。 翻译&#xff1a;源文件-〉目标文件-〉可执行文件&#xff08;通过链接器将多个目标文件捆绑在一起&#xff09; 编译过程&#xff1a;预处理器-〉源代码经过解析…

Linux下Libpcap源码分析和包过滤机制

libpcap是unix/linux平台下的网络数据包捕获函数包&#xff0c;大多数网络监控软件都以它为基础。Libpcap可以在绝大多数类unix平台下工作&#xff0c;本文分析了libpcap在linux 下的源代码实现&#xff0c;其中重点是linux的底层包捕获机制和过滤器设置方式,同时也简要的讨论了…

Pcap程序设计

下面这篇Programming with pcap可谓包嗅探的入门级的经典之作,将它翻译如下,本人水平所限,仅供参考。 Programming with pcap Tim Carstens timcarst at yahoo dot com The latest version of this document can be found at http://www.tcpdump.org/pcap.htm Ok, lets begin…

linux-Tcp IP协议栈源码阅读笔记

一.linux内核网络栈代码的准备知识1. linux内核ipv4网络部分分层结构&#xff1a;BSD socket层&#xff1a; 这一部分处理BSD socket相关操作&#xff0c;每个socket在内核中以struct socket结构体现。这一部分的文件主要有&#xff1a;/net/socket.c /net/protocols.c etcINET…

Linux串口编程-5-space校验2

#include <stdio.h> /*标准输入输出定义*/#include <stdlib.h> /*标准函数库定义*/#include <unistd.h> /*Unix 标准函数定义*/#include <sys/types.h> /*系统类型定义*/#include <sys/stat.h> /*…

Linux下的串口编程

资源转自网上&#xff0c;原帖地址为&#xff1a; http://www.laogu.com/wz_2752.htm http://www.xxlinux.com/linux/article/development/soft/20071029/11228.html http://blog.csdn.net/jznsmail/archive/2006/03/15/625382.aspx 串口简介 串行口是计算机一种常用的接口…

tcgetattr

tcgetattr 目录 头文件函数原型说明范例头文件   #include<termios.h> 函数原型   int tcgetattr(int fd, struct termios *termios_p); 说明   tcgetattr函数用于获取与终端相关的参数。参数fd为终端的文件描述符&#xff0c;返回的结果保存在termios结构体中&…

C/C+语言struct深层探索(一)

struct的巨大作用 面对一个人的大型C/C程序时&#xff0c;只看其对struct的使用情况我们就可以对其编写者的编程经验进行评估。因为一个大型的C/C程序&#xff0c;势必要涉及一些(甚至大量)进行数据组合的结构体&#xff0c;这些结构体可以将原本意义属于一个整体的数据组合在一…

C++指针探讨 (一)数据指针

指针&#xff0c;在C/C语言中一直是很受宠的&#xff1b;几乎找不到一个不使用指针的C/C应用。用于存储数据和程序的地址&#xff0c;这是指针的基本功能。用于指向整型数&#xff0c;用整数指针(int*)&#xff1b;指向浮点数用浮点数指针(float*)&#xff1b;指向结构&#xf…

虚拟键盘驱动程序

这个是很久之前我就想解决的问题了 以前开发板上的按键&#xff0c;都不是真正意义上&#xff0c;近似USB键盘的效果&#xff0c;根本不能作为Qt等图形界面的输入 看ELDD终于讲到了input子系统 从图中可以看出&#xff0c;靠直接读写 /dev/input/ 目录下的设备节点是不合理的&a…

gpio_request

今天再次学习SD卡驱动&#xff0c;遇到pgio_request这个函数&#xff0c;始终不知道其什么意思&#xff0c;看了几遍源代码才有了点感觉。现将其关键部分再此说明一下&#xff0c;以备自己以后复习&#xff0c;或是路客参考。 一般gpio_request封装了mem_request(),起保护作用&…

关于ioremap,request_mem_region

以我们家Intel为代表的i386系列处理器中,内存和外部IO是独立编址独立寻址的,于是有一个地址空间叫做内存空间,另有一个地址空间叫做I/O空间.也就是说,从处理器的角度来说,i386提供了一些单独的指令用来访问I/O空间.换言之,访问I/O空间和访问普通的内存得使用不同的指令.而在一些…

hrtimer和work工作队列的使用

1.hrtimers - 为高分辨率kernel定时器&#xff0c;可作为超时或周期性定时器使用 1). hrtimer_init初始化定时器工作模式。 hrtimer_init(&vibe_timer, CLOCK_MONOTONIC, HRTIMER_MODE_REL); vibe_timer.function vibrator_timer_func; /* 设置定时器的回调函数&#xf…

回调函数实现类层次结构上下层的通信

首先用摘自VCKBase上的一篇文章介绍下函数指针和回调函数。 程序员常常需要实现回调。本文将讨论函数指针的基本原则并说明如何使用函数指针实现回调。注意这里针对的是普通的函数&#xff0c;不包括完全依赖于不同语法和语义规则的类成员函数&#xff08;类成员指针将在另文中…

linux进程描述符task_struct详解

本文出自:http://blog.csdn.net/hongchangfirst/article/details/7075026 大家都知道进程&#xff0c;可是知道linux是怎么管理其进程的吗&#xff1f;每一个进程都有一个进程描述符&#xff0c;具体是task_struct结构体存储相关的信息&#xff0c;在linux/sched.h文件里定义&a…

位域

位域: 是把一个字节中的二进位划分为几个不同的区域&#xff0c; 并说明每个区域的位数。每个域有一个域名&#xff0c;允许在程序中按域名进行操作。 这样就可以把几个不同的对象用一个字节的二进制位域来表示。 #include<stdio.h> typedef struct tagBit { unsigned …

linux下的framebuffer(2)

目前根据自己对linux中framebuffer的了解写了如下的代码&#xff1a; 下面是用到的一些文件&#xff0c;在linux下编译通过&#xff0c;显示图形效果。 效果&#xff1a;主要代码在fb.c中&#xff0c;在显卡x,y(1100,100)出显示x0,y0(130,150)大小的颜色&#xff0c;再在x0,y0…

linux下的framebuffer(1)

概念&#xff1a; 1、像素&#xff1a;pixel,点阵&#xff0c;就是屏幕上的一个点。 2、Bpp:每个像素所占的bit数。bit数越大&#xff0c;一个像素能表现颜色数越多。8bpp&#xff0c;能表现256种颜色。16Bpp能表现65536种颜色。 3、分辨率&#xff1a;一个屏幕x方向和y方向…

codeup 题目解答(结构体的使用)

Contest100000572 - 《算法笔记》2.8小节——C/C快速入门->结构体(struct)的使用 问题B 11.2 题目描述 定义一个结构体student&#xff0c;存储学生的学号、名字、性别和年龄&#xff0c;读入每个学生的所有信息&#xff0c;保存在结构体中&#xff0c;并输出。结构体stud…

B树的插入

//这是一个奇数阶b树#include<iostream.h> #define m 5typedef struct nd { int keynum; int data[m1]; struct nd *chd[m1]; struct nd *pr;}btnode,*pbtnode; class btree{private: pbtnode root;public: btree() { root0; int i; cout<<"enter node i…

说说红黑树

--摘自维基百科 红黑树是一种自平衡二叉查找树&#xff0c;是在计算机科学中用到的一种数据结构&#xff0c;典型的用途是实现关联数组。它是在1972年由鲁道夫贝尔发明的&#xff0c;他称之为"对称二叉B树"&#xff0c;它现代的名字是在 Leo J. Guibas 和 Robert S…

8、linux进程间通信之消息队列

消息队列 定义&#xff1a; Unix早期的通信机制之一的信号能够传送的信息量有限&#xff0c;管道则只能传 送无格式的字节流&#xff0c;这无疑会给应用程序的开发带来不便。消息队列&#xff08;也叫报文队列&#xff09;则克服了这些缺点。 发展&#xff1a; 消息队列就…

fcntl参数解释

功能描述&#xff1a;根据文件描述词来操作文件的特性。 用法&#xff1a; int fcntl(int fd, int cmd); int fcntl(int fd, int cmd, long arg); int fcntl(int fd, int cmd, struct flock *lock); 参数&#xff1a; fd&#xff1a;文件描述词。 cmd&#xff1a;操作命令。…

理解 位域

有很多人对于位域的理解模糊&#xff0c;我用编译器代码来阐述它&#xff0c;希望对大家有些帮助 CODE: struct{ short a:4; short b:5; short c:7;}t; int main(){ t.a 1; t.b 2; t.c 3; printf(size: %d/n, sizeof(t)); printf(%d/n, t.a);…

Linux下PCI设备驱动程序开发

一、PCI总线系统体系结构 PCI是外围设备互连&#xff08;Peripheral Component Interconnect&#xff09;的简称&#xff0c;作为一种通用的总线接口标准&#xff0c;它在目前的计算机系统中得到了非常广泛的应用。PCI提供了一组完整的总线接口规范&#xff0c;其目的是描述如…

epoll

I/O多路复用技术在比较多的TCP网络服务器中有使用&#xff0c;即比较多的用到select函数。在linux2.6内核中&#xff0c;有了一种替换它的机制&#xff0c;就是epoll。 一、epoll相关的数据结构和函数 epoll用到的所有函数都是在头文件sys/epoll.h中声明的&#xff0c;下面简…

怎样打开.db文件?

如果你的要求是用一种语言来打开数据库的话&#xff0c;那么你必须首先了解dbf文件的格式&#xff0c;这一点非常的重要。下面是一个c语言写的读dbf文件的小程序&#xff0c;你看看吧&#xff01;&#xff0c;你可以编辑一下&#xff0c;看可否达到你的要求&#xff01; #inclu…

B树的插入与删除

//这是一个奇数阶b树#include<iostream.h> #define m 5typedef struct nd { int keynum; int data[m1]; struct nd *chd[m1]; struct nd *pr;}btnode,*pbtnode; class btree{private: pbtnode root;public: btree() { root0; int i; cout<<"enter node i…

14、TCP网络程序设计

基于TCP—服务器 创建一个socket&#xff0c;用函数socket&#xff08;&#xff09; 绑定IP地址&#xff0c;端口等信息到socket上&#xff0c;用函数bind() 设置允许最大连接数 &#xff0c;用函数listen() 等待来自客户端的连接请求…

[转]使用iPhone三轴感应器的代码例子

转自&#xff1a;http://www.cocoachina.com/iphonedev/sdk/2010/0624/1749.html 很多应用里都要用到苹果iPhone自带的三轴感应器&#xff08;加速度传感器&#xff09;&#xff0c;希望下面这段代码例子能为您使用iPhone三轴感应器打开思路。 #include <IOKit/IOKitLib.h&g…

OPcode简介

运行一段PHP代码主要有两个阶段:编译和执行, 当然编译过程中还包括词法分析语法分析不同阶段和细节&#xff0c;这里我们将其作为一个整体。在这两个阶段之间&#xff0c;PHP代码会被编译成op code&#xff0c;可以将其认为是引擎的一个中间语言&#xff0c;编辑阶段把PHP源码生…

memset函数详细说明

1。void *memset(void *s,int c,size_t n) 总的作用&#xff1a;将已开辟内存空间 s 的首 n 个字节的值设为值 c。 2。例子 &#xff03;i nclude &#xff03;i nclude main(){ char *s"Golden Global View"; clrscr(); memset(s,G,6); printf("%s",s…

读取*.wav音频文件

1、wav音频文件的格式 wav文件由文件头和采样数据2部分组成。 文件头又分为RIFF&#xff08;Resource Interchange File Format&#xff09;、WAVE文件标识段 和 声音数据格式说明段组成。 各段的起始地址分别由RIFF标识符、WAVE标识符、以及波形格式标识符&#xff08;FMT&…

AVI文件规范

AVI文件规范 PeterLee 2007-10-14一、AVI文件简介AVI的英文全称为Audio Video Interleaved&#xff0c;即音频视频交错格式&#xff0c;是将语音和影像同步组合在一起的文件格式。AVI于1992年被Microsoft公司推出&#xff0c;随Windows3.1一起被人们所认识和熟知。AVI文件格式…

突破Linux内核模块校验机制

出自&#xff1a;http://hi.baidu.com/wzt85/item/dcea082c90c9ed0942634ad2 1、 为什么要突破模块验证 Linux内核版本很多&#xff0c;升级很快&#xff0c;2个小内核版本中内核函数的定义可能都不一样&#xff0c;为了确保不一致的驱动程序导致kernel oops&#xff0c; 开发…

Linux 内存管理 -- 高端内存的映射方式

高端内存是指物理地址大于 896M 的内存。 对于这样的内存&#xff0c;无法在“内核直接映射空间”进行映射。 为什么&#xff1f; 因为“内核直接映射空间”最多只能从 3G 到 4G&#xff0c;只能直接映射 1G 物理内存&#xff0c;对于大于 1G 的物理内存&#xff0c;无能为力…

libmad使用一步步进阶

原文地址&#xff1a;http://my.oschina.net/mjRao/blog/57874 libmad是一个开源mp3解码库&#xff0c;其对mp3解码算法做了很多优化&#xff0c;性能较好&#xff0c;很多播放器如mplayer、xmms等都是使用这个开源库进行解码的&#xff1b;如果要设计mp3播放器而又不想研究mp…

mini2440 uboot201103 系统移植

移植过程主要是根据网上一名为csuwzc的高手提供的方法进行的&#xff0c;他不仅提供了方法&#xff0c;还把移植好的u-boot 2011.03放在网上供人下载&#xff0c;真是要感谢他了。移植过程基本顺利。不过还是有一些问题&#xff0c;我将这此记录下来&#xff0c;以供参考。 准…

kdump转储的内核实现

前面一篇文章介绍了kexec和kdump的思想&#xff0c;本文着重讲它们的另一个方面&#xff0c;就是kdump到底是如何转储垮掉内核的内存映像的。首先定义一个链表&#xff0c;它很重要。 static LIST_HEAD(vmcore_list); unsigned long long elfcorehdr_addr ELFCORE_ADDR_MAX; /…

mini2440网卡驱动DM9000之dm9000_start_xmit

/* 调用时机&#xff1a;当网卡有数据需要发送的时候&#xff0c;该函数被调用 */ static int dm9000_start_xmit(struct sk_buff *skb, struct net_device *dev) { unsigned long flags; board_info_t *db netdev_priv(dev); dm9000_dbg(db, 3, "%s:\n", __func…

Linux内核和用户空间通信的方法(二)— 使用netlink

理论篇在 Linux 2.4 版以后版本的内核中&#xff0c;几乎全部的中断过程与用户态进程的通信都是使用 netlink 套接字实现的&#xff0c;例如iprote2网络管理工具&#xff0c;它与内核的交互就全部使用了netlink&#xff0c;著名的内核包过滤框架Netfilter在与用户空间的通读&am…

Linux内核数据包处理流程-数据包接收(2)

四、网卡的数据接收内核如何从网卡接受数据&#xff0c;传统的经典过程&#xff1a;1、数据到达网卡&#xff1b; 2、网卡产生一个中断给内核&#xff1b; 3、内核使用I/O指令&#xff0c;从网卡I/O区域中去读取数据&#xff1b;我们在许多网卡驱动中&#xff0c;都可以在网卡的…

基于内核的linux键盘纪录器

1 - 介绍 2 - linux的keyboard驱动是如何工作的 3 - 基于内核的键盘纪录的原理 3.1 - 中断句柄 3.2 - 函数劫持 3.2.1 - 劫持handle_scancode 3.2.2 - 劫持put_queue 3.2.3 - 劫持receive_buf 3.2.4 - 劫持tty_read 3.2.5 - 劫持sys_…

gcc的一些 __attribute__

GNU C的一大特色就是__attribute__机制。__attribute__可以 设置函数属性&#xff08;Function Attribute&#xff09;、变量属性&#xff08;Variable Attribute&#xff09;和类型属性&#xff08;Type Attribute&#xff09;。__attribute__书写特征是&#xff1a;__attribu…

linux中断实例

原文&#xff1a;http://edsionte.com/techblog/%E5%86%85%E6%A0%B8%E6%96%B0%E6%89%8B%E5%8C%BA 你的第一个中断程序: 本文通过一个简单的中断程序来描述一般中断程序的基本框架。完整代码在这里。中断程序一般会包含在某个设备的驱动程序中&#xff0c;因此&#xff0c;接下来…

支持阻塞操作的字符设备驱动

原文&#xff1a;http://edsionte.com/techblog/archives/1895 在前文中&#xff0c;我们已经知道了如何编写一个简单的字符设备驱动。本文将在此基础上为这个字符设备驱动增加阻塞功能。不过在此之前&#xff0c;我们会先做一些准备工作。 阻塞和非阻塞I/O阻塞和非阻塞I/O是…

多路复用select与poll

多路复用select与poll 在UNIX/linux中有4中IO模型&#xff0c;分别为&#xff1a; 1、 阻塞IO 2、 非阻塞IO 3、 IO多路复用 4、 信号驱动IO 这几种IO模型&#xff0c;阻塞IO是最长用到的&#xff0c;并且操作相对简单&#xff0c;但是缺点在于…

mini2440 dm9000 网卡驱动详解 3

*dm9000_get_drvinfo() 该函数去的设备的基本信息(设备名&#xff0c;版本&#xff0c;总线名)传给ethtool_drvinfo结构体变量。代码清单如下&#xff1a; static void dm9000_get_drvinfo(struct net_device *dev, struct ethtool_drvinfo *info) { board_info_t *d…

mini2440 dm9000 网卡驱动详解 2

3. platform_driver的remove&#xff0c; suspend和resume的实现 remove函数的功能是把设备从内核中移除&#xff0c;释放内存区域。该函数在卸载模块时被调用。代码清单如下&#xff1a; static int __devexit dm9000_drv_remove(struct platform_device *pdev) { …

mini2440 dm9000 网卡驱动详解 1

虽然Linux驱动程序应该是和具体的硬件平台分离的&#xff0c;但是为了更好的理解DM9000的驱动程序&#xff0c;这里还是结合一下Mini2440开发板&#xff0c;这样也可以更好的体会如何实现驱动和平台分离。 本文分成以下几个部分&#xff1a; 一、Mini2440开发板上DM9000的电气…

内核和用户之间传参(netlink套接字)

netlink 套接字传递参数 Netlink 是一种特殊的 socket&#xff0c;它是 Linux 所特有的&#xff0c;类似于 BSD 中的AF_ROUTE 但又远比它的功能强大&#xff0c;目前在最新的 Linux 内核&#xff08;2.6.14&#xff09;中使用netlink 进行应用与内核通信的应用很多&#xff0c;…

写一个块设备驱动(15)

第15章(最终章) --------------------------------------------------- | 写一个块设备驱动 | --------------------------------------------------- | 作者&#xff1a;赵磊 | | email: zhaoleiddh…

写一个块设备驱动(14)

第14章 --------------------------------------------------- | 写一个块设备驱动 | --------------------------------------------------- | 作者&#xff1a;赵磊 | | email: zhaoleiddhotmail.c…

写一个块设备驱动(13)

第13章 --------------------------------------------------- | 写一个块设备驱动 | --------------------------------------------------- | 作者&#xff1a;赵磊 | | email: zhaoleiddhotmail.c…

写一个块设备驱动 (12)

第12章 --------------------------------------------------- | 写一个块设备驱动 | --------------------------------------------------- | 作者&#xff1a;赵磊 | | email: zhaoleiddhotmail.c…

写一个块设备驱动(11)

第11章 --------------------------------------------------- | 写一个块设备驱动 | --------------------------------------------------- | 作者&#xff1a;赵磊 | | email: zhaoleiddhotmail.c…

写一个块设备驱动 (10)

第10章 --------------------------------------------------- | 写一个块设备驱动 | --------------------------------------------------- | 作者&#xff1a;赵磊 | | email: zhaoleiddhotmail.c…

写一个块设备驱动 (7)

第7章 --------------------------------------------------- | 写一个块设备驱动 | --------------------------------------------------- | 作者&#xff1a;赵磊 | | email: zhaoleiddhotmail.co…

写一个块设备驱动(6)

第6章 --------------------------------------------------- | 写一个块设备驱动 | --------------------------------------------------- | 作者&#xff1a;赵磊 | | email: [email]zhaoleiddhot…

关于 Union,Struct and Class的大小计算问题的思考(转)union和struct类型的大小计算(转)

关于 Union,Struct and Class的大小计算问题的思考(转)& union和struct类型的大小计算(转) 在最近的项目中&#xff0c;我们涉及到了“内存对齐”技术。对于大部分程序员来说&#xff0c;“内存对齐”对他们来说都应该是“透明的”。“内存对齐”应该是编译器的 “管辖范…

C# 中 List 用法

C# 中 List 用法 List 类是 ArrayList 类的泛型等效类&#xff0c;某些情况下&#xff0c;用它比用数组和 ArrayList 都方便。 我们假设有一组数据&#xff0c;其中每一项数据都是一个结构。 public struct Item {public int Id;public string DisplayText; } 注意结构是不能给…

__attribute__机制

原帖&#xff1a;http://blog.chinaunix.net/u2/69947/showart_1102422.html 摘要&#xff1a; 在学习linux内核代码及一些开源软件的源码&#xff0c;经常可以看到有关__attribute__的相关使用。本文结合自己的学习经历&#xff0c;较为详细的介绍了__attribute__相关语法及其…

C++学习笔记3

文章目录1 字符串1.1 C 风格字符串1.2 C 引入的 string 类类型2 指针2.1 Null 指针2.2 指针的算术运算2.3 指针 vs 数组2.4 指针数组2.5 指向指针的指针2.6 传递指针给函数2.7 从函数返回指针3 引用4 日期与时间5 基本输入输出5.1 标准输出流(cout)5.2 标准输入流(cin)5.3 标准…

指针汇总--百度百科

百科名片 在日常生活中指针是仪器或钟表上的&#xff0c;用来指示测量的数据的装置。在信息工程中指针是一个用来指示一个内存地址的计算机语言的变量或中央处理器(CPU)中寄存器。针灸中以手指代替针刺按压或爪切某些穴位&#xff0c;治病的一种治疗方法&#xff0c;常用于突发…

线性表的顺序表示和实现

一、线性表的顺序表示 用一组地址连续的存储单元依次存储线性表的数据元素。C语言中的数组即采用顺序存储方式。 2000:00012000:00032000:00052000:00072000:00092000:00112000:00132000:00152000:0017...2000:10012000:1003 0000000000000001000000000000001000000000000000…

hash_map in Linux error

在VS2k5下写了一个小的prototype&#xff0c;用到了STL: hash_map。运行一切正常。还指望cp到Linux环境下直接可以运行起来&#xff0c;结果编译后刷出满屏error。 O SHIT。 看看error&#xff0c;恩&#xff1f;using namespace stdext的stdext不认识&#xff1f;&#xff1f;…

5分钟搞定内存字节对齐

写出一个struct,然后sizeof,你会不会经常对结果感到奇怪?sizeof的结果往往都比你声明的变量总长度要大,这是怎么回事呢?讲讲字节对齐吧. /******************************分割线 如果体系结构是不对齐的&#xff0c;A中的成员将会一个挨一个存储&#xff0c;从而sizeof(a)为…

自己动手编写嵌入式Bootloader---基本功能流程

【 IT168 技术文档】CPU上电后会从IO空间的某地址取第一条指令。但此时&#xff1a;PLL没有启动&#xff0c;CPU工作频率为外部输入晶振频率&#xff0c;非常低;CPU工作模式、中断设置等不确定;存储空间的各个BANK(包括内存)都没有驱动&#xff0c;内存不能使用。在这种情况下必…

linux usb驱动框架 5

说的usb子系统的IO操作&#xff0c;不得不说usb request block&#xff0c;简称urb。事实上&#xff0c;可以打一个这样的比喻&#xff0c;usb总线就像一条高速公路&#xff0c;货物、人流之类的可以看成是系统与设备交互的数据&#xff0c;而urb就可以看成是交通工具。在一开始…

linux usb驱动框架 4

probe是usb子系统自动调用的一个函数&#xff0c;有USB设备接到硬件集线器时&#xff0c;usb子系统会根据production ID和vendor ID的组合或者设备的class、subclass跟protocol的组合来识别设备调用相应驱动程序的probe(探测)函数&#xff0c;对于skeleton 来说&#xff0c;就是…

复习一下栈的基本操作

题目描述 对输入整数序列1 2 3 ..执行一组栈操作&#xff0c;输出操作的出栈序列。 输入 每行是一个测试用例&#xff0c;表示一个操作序列。操作序列由P和Q两个符号组成&#xff0c;P表示入栈&#xff0c;Q表示出栈。每个操作序列长度不超过1000。 输出 对每个操作序列&#x…

第14章 类

第14章 类 这一章介绍C的类,类在程序中引入了用户自定义的类型,类可以包含数据和函数。 在传统程序设计语言中用户自定义类型是数据的集合。它们放在一起用以描述对象的属性和状态。C中的类类型使用户不仅能够描述对象的属性和状态,还可以定义对象的行为。 本章包括下面一些…

进程相关知识

进程 &#xff08;关于每CPU变量的详细解释可以参照《Linux设备驱动第三版》8.4节&#xff09; 每个线程代表一个进程的执行流。 这里有个例子&#xff1a;就是象棋。其中一个线程是用来对棋盘进行控制&#xff0c;另一个线程…

约瑟夫环(C语言单项循环链表)

约瑟夫环(C语言单项循环链表) 约瑟夫环 问题描述&#xff1a;约瑟夫问题的一种描述是&#xff1a;编号为1&#xff0c;2&#xff0c;…&#xff0c;n的n个人按顺时针方向围坐一圈&#xff0c;每人持一个密码&#xff08;正整数&#xff09;。一开始任选一个正整数作为报数上限值…

TCP/IP网络编程函数解析

TCP/IP网络编程函数解析 转载&#xff1a;http://blog.csdn.net/sailor_8318/archive/2009/01/08/3736837.aspx socket&#xff08;建立一个socket通信&#xff09; 相关函数 accept&#xff0c;bind&#xff0c;connect&#xff0c;listen 表头文件 #include<sys/types.…

关于三态的TreeView的一些想法

<script type"text/javascript"> function StorePage() { ddocument; td.selection?(d.selection.type!None?d.selection.createRange().text:):(d.getSelection?d.getSelection():); void(keyitwindow.open(http://www.365key.com/storeit.aspx?tescape(d…

16、并发服务器

UDP并发服务器 UDP循环服务器实现的方法&#xff1a; UDP服务器每次从套接字上读取一个客户端的请求&#xff0c;接着处理&#xff0c;然后将结果返回给客户机。 socket(); bind(); while(1) { recvfrom(); process(); sendto(); } TCP循环服务器 TCP循环服务器接受一个客户端的…

15、UDP服务器

基于UDP—服务器 创建一个socket&#xff0c;用函数socket() 绑定IP地址&#xff0c;端口等信息到socket上&#xff0c;用函数bind() 循环接收数据&#xff0c;用函数recvfrom() 关闭网络连接 基于UDP—客户端 创建一个sock…

linux下的内存映射函数mmap详解及示例代码

自&#xff1a;http://hi.baidu.com/flying5/blog 不错的博客&#xff0c;大家可以去看看Linux的mmap文件内存映射机制mmap: memory map 在讲述文件映射的概念时, 不可避免的要牵涉到虚存(SVR 4的VM). 实际上, 文件映射是虚存的中心概念 , 文件映射一方面给用户提供了一组…

HBufC使用中的陷阱与误区

Symbian是为资源高度受限的手持终端所设计的&#xff0c;所以应用开发中须要时刻保持这样的警觉。Symbian默认为应用程序创建的栈区是较小的&#xff0c;因此在栈中创建缓冲区时应当特别小心。 虽然Symbian SDK中也提供了TBuf、TBufC等可用于栈的缓冲区描述符&#xff0c;但一般…

stdafx.h 包含的头文件出错,导致大问题.

莫名奇妙的,编译的时候无法识别 PVOID , 然后我 typedef void* PVOID; 还是不能识别. 最后发现stdafx.h 包含一个 h 文件. 里面 struct COMMANDINFO { DWORD dwMagic ; DWORD dwVersion; DWORD dwCommand ; DWORD dwReverse ; DWORD dwParam[16] ; } 最后缺少一个" …

CArray 嵌套问题。 错误C2448;C2664;C2582

当CArray 嵌套时候&#xff0c;许多情况下会发生C2448;C2664;C2582这样的错误。 并且指示CArray的内部错误。 在KB231995中&#xff0c;微软描述了问题&#xff0c;并且简要的诉说了解决方案。 英文版本&#xff1a; http://support.microsoft.com/kb/231995/en 中文机器翻…

函数命名规则及调用约定(__cdecl,__stdcall,__fastcall)

函数命名规则及调用约定(__cdecl,__stdcall,__fastcall) __cdecl是C/C和MFC程序默认使用的调用约定&#xff0c;也可以在函数声明时加上__cdecl关键字来手工指定。采用__cdecl约定时&#xff0c;函数参数按照从右到左的顺序入栈&#xff0c;并且由调用函数者把参数弹出栈以清理…

怎样写 Linux LCD 驱动程序

怎样写 Linux LCD 驱动程序 作者: 刘鹏 日期: 2008-12-27 本文分析了frame buffer 设备驱动的主要数据结构&#xff0c;在此基础上介绍了LCD驱动程序的开发。 基本原理 通过 framebuffer &#xff0c;应用程序用 mmap 把显存映射到应用程序虚拟地址空间&#xff0c;将要显示的…

SYN-Flood遭遇战——Linux内核SYN-Cookie实现探究

SYN Flood好使啊&#xff0c;成本低廉&#xff0c;简单暴力&#xff0c;杀伤力强&#xff0c;更重要的是&#xff1a;无解&#xff0c;一打一个准&#xff01;这种攻击充分利用了TCP协议的弱点&#xff0c;可以很轻易将你的网络打趴下。如果监控和应急不到位的话&#xff0c;那…

request_mem_region,ioremap

Linux在头文件include/linux/ioport.h中定义了三个对I/O内存资源进行操作的宏&#xff1a; (1)request_mem_region()宏&#xff0c;请求分配指定的I/O内存资源。 (2)check_mem_region()宏&#xff0c;检查指定的I/O内存资源是否已被占用。 (3)release_mem_region()宏&#xff0…

全区间积分的定步长欧拉方法(常微分方程组的求解)

/*代码作者&#xff1a;不详代码整理者&#xff1a;设计天下 MySDN网站 算法天下工作室 LS代号: _MySDN_SFTX_LS网址&#xff1a;http://www.my-sdn.net 功能&#xff1a;全区间积分的定步长欧拉方法(常微分方程组的求解) */ #include "stdio.h"#include "st…

全区间积分的哈明方法(常微分方程组的求解)

/*代码作者&#xff1a;不详代码整理者&#xff1a;设计天下 MySDN网站 算法天下工作室 功能&#xff1a;全区间积分的哈明方法(常微分方程组的求解)*/ #include "stdio.h"#include "stdlib.h"#include "math.h"/*全区间积分的定步长欧拉方法*…

全区间积分的阿当姆斯预报校正法(常微分方程组的求解)

/*代码作者&#xff1a;不详代码整理者&#xff1a;设计天下 MySDN网站 算法天下工作室 功能&#xff1a;全区间积分的阿当姆斯预报校正法(常微分方程组的求解)*/ #include "stdio.h"#include "stdlib.h"#include "math.h"/*全区间积分的定步长…

linux NAND驱动之五:NAND驱动中probe和nand_chip结构

在基于MTD 的NAND driver 的probe 函数中&#xff0c;主要可以分为两部分内容&#xff0c;其一是与很多外设driver 类似的一些工作&#xff0c;如申请地址&#xff0c;中断&#xff0c;DMA 等资源&#xff0c;kzalloc 及初始化一些结构体&#xff0c;分配DMA 用的内存等等&…

linux NAND驱动之四:6410上的NAND读写流程

MTD对NAND芯片的读写主要分三部分&#xff1a; A、struct mtd_info中的读写函数&#xff0c;如read&#xff0c;write_oob等&#xff0c;这是MTD原始设备层与FLASH硬件层之间的接口&#xff1b; B、struct nand_ecc_ctrl中的读写函数&#xff0c;如read_page_raw&#xf…

linux spi驱动分析

关于spi的学习&#xff0c;我觉得最好的方法还是看Linux的源代码&#xff0c;主要是driver/spi/spi.c(h)&#xff0c;spidev.c(h)。spi dev的示例可以看看at25.c&#xff0c;spi总线的示例可以看omap_uwire或者spi_s3c24xx.c和spi_s3c24xx_gpio.c。在看这些代码之前&#xff0c…

Frame Buffer

Linux的帧缓冲&#xff08;Frame Buffer&#xff09;之一&#xff1a;原理及控制参数 大家都知道Unix/Linux系统是由命令驱动的。X&#xff0d;Window&#xff0d;System是Unix/Linux上的图形系统&#xff0c;它是通过X&#xff0d;Server来控制硬件的。但有一些Linux的发行版在…

第一讲:2410的初始化流程(设备初始化)

第一讲&#xff1a;2410的初始化流程&#xff08;设备初始化&#xff09;1 在mach-smdk2410.c中先通过MACHINE_START()定义了machine_desc的变量,其中注册了smdk2410_map_io(), s3c2410_init_irq(), smdk2410_init()这3个回调函数. 这3个回调函数会在系统起来的时候setup_arch(…

linux板级设备的初始化过程

start_kernel() -> setup_arch(&command_line) -> mdesc setup_machine(machine_arch_type) -> list lookup_machine_type(nr) -> return struct machine_desc. 内核在启动的时候就是最先运行start_kernel() , 然后她就会调用体系结构相关的setup_arch(&…

dma_alloc_writecombine

先理解cache的作用 CPU在访问内存时&#xff0c;首先判断所要访问的内容是否在Cache中&#xff0c;如果在&#xff0c;就称为“命中&#xff08;hit&#xff09;”&#xff0c;此时CPU直接从Cache中调用该内容&#xff1b;否则&#xff0c;就 称为“ 不命中”&#xff0c;CPU只…

全区间积分的双边法(常微分方程组的求解)

/*代码作者&#xff1a;不详代码整理者&#xff1a;设计天下 MySDN网站 算法天下工作室 功能&#xff1a;全区间积分的双边法(常微分方程组的求解)*/ #include "stdio.h"#include "stdlib.h"#include "math.h"/*全区间积分的定步长欧拉方法*//…

s3c2440-lcd控制器参数如何设定

-具体设置需参照CPU文档中LCD控制器部分或显示芯片的硬件手册,我的是cpu是s3c2440,屏是三星横屏-LTV350QV-F04(带触摸屏),分辨率是320*240. 该液晶模块的显示格式为320&#xff08;3&#xff09;240即显示屏每行具有320个像素点&#xff0c;共240行&#xff1b;每个像素点由RGB…

WinCE串口驱动分析(转)

虽然串口通讯已经是普遍的标准而且广为大家熟知&#xff0c;但驱动中涉及的部分内容也可能在平时的应用中并不是很常用到&#xff0c;在这里做一个简单的介绍待后面说明到具体代码的时候可以连贯一些。 串行通讯接口是目前十分流行的通讯接口之一。由于其电气界面的简单性使其在…

ioremap

几乎每一种外设都是通过读写设备上的寄存器来进行的&#xff0c;通常包括控制寄存器、状态寄存器和数据寄存器三大类&#xff0c;外设的寄存器通常被连续地编址。根据CPU体系结构的不同&#xff0c;CPU对IO端口的编址方式有两种&#xff1a; &#xff08;1&#xff09;I/O映射方…

MTK中Category的定义

MTK中Category的定义 定义Category Category在MTK中是一个很重要的组件&#xff0c;它相当于Windows中的窗口组件&#xff0c;而在MTK中一个Category 则表示一个屏幕&#xff0c;而显示一个屏幕就是要调用类似于ShowCategoryXXX的函数。下面我们就Category 的定义以及实现做一…

十字链表的定义及C语言描述

十字链表常用于表示稀疏矩阵&#xff0c;可视作稀疏矩阵的一种链式表示&#xff0c;因此&#xff0c;这里以稀疏矩阵为背景介绍十字链表。不过&#xff0c;十字链表的应用远不止稀疏矩阵&#xff0c;一切具有正交关系的结构&#xff0c;都可用十字链表存储。 1、存储方式 (a)…

广义表的定义及用法

广义表&#xff08;Lists&#xff0c;又称列表&#xff09;是线性表的推广。线性表定义为n>0个元素a1,a2,a3,…,an的有限序列。线性表的元素仅限于原子项&#xff0c;原子是作为结构上不可分割的成分&#xff0c;它可以是一个数或一个结构&#xff0c;若放松对表元素的这种限…

union用法

在C/C程序的编写中&#xff0c;当多个基本数据类型或复合数据结构要占用同一片内存时&#xff0c;我们要使用联合体&#xff1b;当多种类型&#xff0c;多个对象&#xff0c;多个事物只取其一时&#xff08;我们姑且通俗地称其为“n 选1”&#xff09;&#xff0c;我们也 可以使…

获取网页的基本流程

1. 获得ip地址&#xff08;表达格式&#xff09;的基本方式struct hostent* host_ent;host_ent gethostbyname(host_addr); // host_addr基本一个字串&#xff0c;例如“net.pku.edu.cn”char abuf[INET_ADDRSTRLEN];inet_ntop(AF_INET, host_ent->h_addr_list[0], abuf, s…

__attribute__ 详解【转】

来自&#xff1a;http://blog.csdn.net/ruixj/archive/2009/06/16/4274721.aspx GNU C的一大特色&#xff08;却不被初学者所知&#xff09;就是__attribute__机制。__attribute__可以设置函数属性&#xff08;Function Attribute&#xff09;、变量属性&#xff08;Variab…

面对不断升级的内核,如何学习linux设备驱动

面对不断升级的linux内核、GNU开发工具、linux环境下的各种图形库&#xff0c;很多linux应用程序 开发人员和linux设备驱动开发人员即兴奋&#xff0c;又烦躁。兴奋的是新的软件软件、工具给我提供了更强大的功能&#xff0c;烦躁的是适应新软件的特性、搭建新环境是一项 非常繁…

Windows CE 6.0 启动过程分析

在Windows CE 6.0中&#xff0c;内核&#xff08;Kenerl&#xff09;和OEM代码被分成oal.exe、kernel.dll和kitl.dll三个部分&#xff0c;其中启动代码&#xff08;startup&#xff09;和 OAL层的实现部分不再与内核链接生成NK.exe&#xff0c;取而代之的是启动代码&#xff08…

memset用法详解(转)

memset用法详解(转&#xff09; 2007-01-31 20:00 <memory.h> or <string.h> memest原型 (please type "man memset" in your shell) void *memset(void *s, int c, size_t n); memset:作用是在一段内存块中填充某个给定的值&#xff0c;它对…

arm linux 从入口到start_kernel 代码分析——head.S分析——3

arm linux 从入口到start_kernel 代码分析 - 3 (2008-07-30 16:03:39) 转载标签&#xff1a; it 分类&#xff1a;kernel 2. 确定 machine type arch/arm/kernel/head.S中:00079: bl __lookup_machine_type r5machinfo 00080: movs r8, r5 invalid machi…

《计算机图形学》实验四:裁剪

本博客计算机图形学系列文章索引&#xff1a; 地址&#xff1a;《计算机图形学系列相关文章索引&#xff08;持续更新&#xff09;》 参考教材&#xff1a;《计算机图形学》 机械工业出版社 &#xff0c;徐文鹏主编 实验内容&#xff1a;利用Cohen-Sutherland编码裁剪算法&…

linux usb驱动框架 2

接下来的工作是向系统注册一些以后会用的的信息。首先我们来说明一下usb_set_intfdata()&#xff0c;他向内核注册一个data&#xff0c;这个data的结构可以是任意的&#xff0c;这段程序向内核注册了一个usb_skel结构&#xff0c;就是我们刚刚看到的被初始化的那个&#xff0c;…

linux usb驱动框架 1

初次接触与OS相关的设备驱动编写&#xff0c;感觉还挺有意思的&#xff0c;为了不至于忘掉看过的东西&#xff0c;笔记跟总结当然不可缺&#xff0c;更何况我决定为嵌入式卖命了。好&#xff0c;言归正传&#xff0c;我说一说这段时间的收获&#xff0c;跟大家分享一下Linux的驱…

kobject与sysfs

2.6内核增加了一个引人注目的新特性----统一设备模型。 设备模型提供了一个独立的机制专门来表示设备&#xff0c;并描述其在系统中的拓补结构。 1,kobject 设备模型的核心部分就是kobject, 它由struct kobject结构体表示&#xff0c;定义于中。 kobject提供了诸如引用计数、名…

STL_学习之_Vector用法!

由于这段时间的工作接触到STL&#xff0c;所以就学习了一下&#xff0c;感觉STL很好&#xff0c;对于一些数据的管理很方便&#xff01; Vector是STL中的向量&#xff0c;实际上&#xff0c;按我的理解就是一个对象数组的模板&#xff0c; 使用之前是包含相应的头文件 #incl…

【C++】类的封装 ④ ( 访问控制权限 | struct 和 class 关键字定义类的区别 | 类的默认访问权限 | 类的默认继承方式 )

文章目录 一、struct 和 class 关键字定义类的区别1、struct 和 class 关键字作用2、类的默认访问权限3、类的默认继承方式4、struct 和 class 关键字 的 推荐用法 一、struct 和 class 关键字定义类的区别 1、struct 和 class 关键字作用 在 C 语言中 , 使用 struct 和 class …

Hive数据仓库行转列

查了很多资料发现网上很多文章都是转发和抄袭&#xff0c;有些问题。这里分享一个自己项目中使用的行转列例子&#xff0c;供大家参考。代码如下&#xff1a; SELECTmy_id,nm_cd_map[A] AS my_cd_a,nm_cd_map[B] AS my_cd_b,nm_cd_map[C] AS my_cd_c,nm_num_map[A] AS my_num_…

vc数据类型转换大全

int i 100;long l 2001;float f300.2;double d12345.119;char username[]"程佩君";char temp[200];char *buf;CString str;_variant_t v1;_bstr_t v2; 一、其它数据类型转换为字符串 短整型(int)itoa(i,temp,10);///将i转换为字符串放入temp中,最后一个数字表示十…

一次买卖问题(single sell profit)

问题是这样的&#xff0c;假设有一只股票a&#xff0c;a[1...n]代表股票a在第1到第n天所对应的股价&#xff0c;试找到一对值i&#xff0c;j&#xff0c;满足1<i<j<n&#xff0c;且a[j]-a[i]取得最大值。如下表 1 2 3 4 5 6 7 8 9101112 a271828459045 用白话说&…

工作经验总结之_VARIANT变量用法

工作经验总结之_VARIANT变量用法 typedef struct tagCY{ 结构体原型 typedef struct tagVARIANT { VARTYPE vt;//enum类型 unsigned short wReserved1//保留字段; unsigned short wReserved2; unsigned short wReserved3; union//保存数据的结构(联合体类型采用覆盖技术)一次…

symbian 如何检测编辑框的当前输入法类型

当我们进行全屏程序开发的时候&#xff0c;对编辑框中当前的输入法要时行判断&#xff0c;以方便我们在界面上贴图表现&#xff0c;通过下面的三步可以完成这个功能&#xff1a; 1、在.h文件中加入相关的头文件#include <eikenv.h> // for CAknEnv::Static()#include &…

ioctl和struct ifreq

转自&#xff1a;http://tech.sunplusedu.com/space/post-4064.aspx 用ioctl获得本地ip地址时要用到两个结构体ifconf和ifreq&#xff0c;它们对于大多数人 来说都是比较陌生的&#xff0c;这里给大家一种比较简单的理解方法&#xff0c;当然只一种帮助 理解的方法&#xff0c;…

SOCKET 编程 获取本机IP 地址

源程序&#xff1a; #include <stdio.h> #include <stdlib.h> #include <errno.h> #include <string.h> #include <sys/types.h> #include <netinet/in.h> #include <sys/socket.h> #include <unistd.h> #include <arpa/in…

wince下USB设备驱动程序导读

随着USB设备的不断增加&#xff0c;我们这些开发人员也就多了对USB设备进行驱动程序开发的工作。但是对于很多初学者来说&#xff0c;存在以下三个困难&#xff1a; 一是对WinCE的驱动程序结构了解得太少&#xff0c;没办法得心应手的专注于驱动程序的开发工作&#xff1b; 二…

wince Vs2005下SHBrowseForFolder用法

添加 文件头 #include "Shlobj.h"// CDiagnosParamDlg 对话框#pragma comment (lib,"Ceshell.lib") 使用 wchar_t dir[200]; BROWSEINFO bi; bi.hwndOwnerNULL; bi.pidlRootNULL; bi.pszDisplayNameL"选择诊断文件"; …

学习C#2.0新特性:泛型!

C# 2.0与泛型在2005年底微软公司正式发布了C# 2.0&#xff0c;与C# 1.x相比&#xff0c;新版本增加了很多新特性&#xff0c;其中最重要的是对泛型的支持。通过泛型&#xff0c;我们可以定义类型安全的数据结构&#xff0c;而无需使用实际的数据类型。这能显著提高性能并得到更…

C/C++代码错误总结 zz

from: http://www.51testing.com/?uid-10851-action-viewspace-itemid-73347 1 FORWARD_NULL通常发生的情况是&#xff0c;一个指针先被判断是否等于NULL&#xff0c;然后指针被非法引用。非法引用NULL的指针会导致程序崩溃。程序员在判断指针是否等于NULL时&#xff0c;没能正…

POJ-2236 Wireless Network

题目链接&#xff1a;http://poj.org/problem?id2236 题目大意&#xff1a; 给你N台电脑&#xff0c;从1-N。一个数字&#xff0c;表示两台计算机的最大通信距离&#xff0c;超过这个距离就无法进行通信。然后分别告诉这些电脑的坐标&#xff0c;接下来有两种操作&#xff0…

POJ-1703 Find them, Catch them

题目链接&#xff1a;http://poj.org/problem?id1703 题目大意&#xff1a; 在Tadu城市里面有2个犯罪团伙&#xff0c;罪犯都属于这两个团伙。现在给你2个罪犯&#xff0c;判断他们是不是一个犯罪团伙。如果当前关系不确定&#xff0c;就输出not sure yet. 解题思路&#x…

windowsCE.net 420串口驱动分析

分析 Auth&#xff1a;nasiry date&#xff1a; 2005年4月12日 abort&#xff1a; windowsCE.net 420串口驱动分析 相关资料 虽然串口通讯已经是普遍的标准而且广为大家熟知&#xff0c;但驱动中涉及的部分内容也可能在平时的应用中并不是很常用到&#xff0c;在这里做一个…

软件工程实验(学生学籍管理系统)

实验六、学生学籍管理系统功能说明本学生学籍管理系统分为学生信息管理、学生成绩管理、考试管理和用户管理四个功能模块。&#xff08;1&#xff09;学生信息管理模块主要是对学生信息&#xff08;如学号、姓名、性别、家庭住址等&#xff09;进行管理。本模块又分为三个子模块…

javah 命令小结

Javah 获取您的 Java 源文件并生成 C 头文件&#xff0c;其中包含您的 Java 代码中所有本机方法的 JNI 存根&#xff08;stub&#xff09;。如果您正在生成一个类的 JNI 存根&#xff0c;而且您已经把这个类定义为包的一部分&#xff0c;那么您 必须 指定完全限定的类名。” 现…

用回溯法解决背包问题

/*编译环境&#xff1a;gcc (GCC) 3.2 20020903 (Red Hat Linux 8.0 3.2-7)Copyright (C) 2002 Free Software Foundation, Inc.Author&#xff1a;NinGoo*/#include <stdio.h>#define N 6 int main(){//从N个背包&#xff08;每个背包中w[k]&#xff09;中选取总重为T的…

BMP文件结构简述

BMP文件结构简述 1. BMP文件组成 BMP文件由文件头、位图信息头、颜色信息和图形数据四部分组成。 2. BMP文件头 BMP文件头数据结构含有BMP文件的类型、文件大小和位图起始位置等信息。 其结构定义如下: typedef struct tagBITMAPFILEHEADER{ WORDbfType; // 位图文件的类…

C语言实现 HashTable

简单实现了哈希表的插入和查找功能&#xff0c;简要说明如下&#xff1a; 1、数据结构&#xff1a; struct HashNode { char* sKey; //键 int nValue; //值 HashNode* pNext; //当Hash值冲突时&#xff0c;指向HASH值相同的下一个节点。 } HashNode* hashTable[HASH_T…

数据结构学习连接

栈和队列 http://www.cnblogs.com/sharpCode/archive/2011/04/07/2008841.html 背包问题 View Code 1 #include <stdio.h>2 #include <stdlib.h>3 typedef intElemType;4 typedef structLNode 5 {6 ElemType w;7 structLNode *next;8 }LNode,*LinkList ;9 typede…

fasync的总结

fasync这个东西就是为了使驱动的读写和application的读写分开&#xff0c;使得application可以在驱动读写时去做别的事&#xff0c;通过kill_fasync (kill_fasync(&async, SIGIO, POLL_IN);)发SIGIO信号给应用&#xff0c;应用通过fcntl把自己这个SIGIO的信号换成自己的响…

SEP0718 framebuffer驱动设计文档

第一部分&#xff1a;驱动的硬件配置部分&#xff1a; Sep0718 处理器的 lcdc 控制器是带有普通的显示功能和 overlay 功能的&#xff0c;因此硬件配置上可以分成基本配置和额外的配置&#xff0c;基本的配置可以保证 lcdc 的正常运作&#xff0c;实现简单功能&#xf…

C语言基础(二)

一、选择题&#xff08;每小题2分&#xff0c;共10分&#xff09; &#xff08;下在各小题&#xff0c;分别有一个或多个正确答案&#xff0c;请将所有正确答案的编号&#xff0c;填写在该小题题干后的括号内。错选或漏选均不得分&#xff09;。 1、若定义&#xff1a;int a[2]…

浅析setsockopt()

简述:设置套接口的选项。 #include <sys/types.h>  #include <sys/socket.h>  int setsockopt(int sockfd, int level, int optname, const void *optval, socklen_t optlen);  参数说明&#xff1a; sockfd&#xff1a;标识一个套接口的描述字。  level&am…

并发服务器设计 Tcp/

服务器端&#xff1a; #include <stdio.h> #include <sys/types.h> #include <sys/socket.h> #include <sys/un.h> #include <errno.h> #include <unistd.h> #include <signal.h> #include <sys/wait.h> #include <netdb.h…

SOCKT udp 编程

服务器端&#xff1a; /* 面向连接的socket客户端通过 调用Connect函数在socket数据结构中保存本地和远端信息。无连接socket的客户端和服务端以及面向连接socket的服务端通过调用 bind函数来配置本地信息。 */ #include <stdlib.h> #include <stdio.h> #inclu…

Socket TCP 编程

服务器端&#xff1a; #include <stdlib.h> #include <stdio.h> #include <errno.h> #include <string.h> #include <netdb.h> #include <sys/types.h> #include <netinet/in.h> #include <sys/socket.h>#define portnumber 3…

Linux应用程序开发 基础知识

原文地址&#xff1a;Linux应用程序开发 基础知识 作者&#xff1a;chipmunk_byr Linux应用程序开发本文讲述了linux应用程序开发的基本内容。值得学习&#xff01;Copyright © 2006 本文遵从GNU 的自由文档许可证(Free Documentation License)的条款&#xff0c;欢迎转载…

container_of 用法解析

在学习Linux驱动的过程中&#xff0c;遇到一个宏叫做container_of。 该宏定义在include/linux/kernel.h中&#xff0c;首先来贴出它的代码&#xff1a; /** * container_of - cast a member of a structure out to the containing structure * ptr: the pointer to t…

linux 工作队列

INIT_DELAYED_WORK()是一个宏,我们给它传递了两个参数.&hub->leds和led_work.对设备驱动熟悉的人不会觉得INIT_DELAYED_WORK()很陌生,其实鸦片战争那会儿就有这个宏了,只不过从2.6.20的内核开始这个宏做了改变,原来这个宏是三个参数,后来改成了两个参数,所以经常在网上看…

解读 nginx 中 chain 和 buf

在写 nginx 的 filter 模块时候需要比较深入去了解chain 和 buf的一些细节以及数据流处理过程。 就结构而言&#xff0c;这两个结构不算复杂 struct ngx_chain_s { ngx_buf_t *buf; ngx_chain_t *next;}; struct ngx_buf_s { u_char *pos; u_char …

GNU的__attribute__机制

GNU C的一大特色&#xff08;却不被初学者所知&#xff09;就是__attribute__机制。__attribute__可以设置函数属性&#xff08;Function Attribute&#xff09;、变量属性&#xff08;Variable Attribute&#xff09;和类型属性&#xff08;Type Attribute&#xff09;。__att…

别把typedef当作宏使用

在开发过程中&#xff0c;我们常常需要自定义数据类型&#xff0c;比如自定义结构体等&#xff0c;为了代码的可读性&#xff0c;我们对自定义的类型常常会利用typedef关键字进行重新类型定义。比如&#xff1a; typedef struct _item_t{int iUin;char sName[50];...} item_t;…

linux 下消息队列编程

写消息&#xff1a; #include <stdlib.h> #include <stdio.h> #include <string.h> #include <errno.h> #include <unistd.h> #include <sys/types.h> #include <sys/ipc.h> #include <sys/msg.h> #define MAX_TEXT 512 s…

共享内存 shm

往共享内存中写&#xff1a; #include <unistd.h> #include <stdlib.h> #include <stdio.h> #include <string.h> #include "shm_com.h" #include <sys/shm.h> #include <sys/types.h> #include <sys/ipc.h> int main…

s3c2440的dma操作的一般步骤

一般的&#xff0c;在s3c2440中&#xff0c;要想进行dma传输&#xff0c;需要一下七个步骤&#xff1a; 一&#xff1a; int s3c2410_dma_request(unsigned int channel, struct s3c2410_dma_client *client, void *dev); s3c2410_dma_client的定义为&#xff1a; struct …

在MTK上写的一段socket的代码

SOCKET c; struct sockaddr_in sa; SOCKET socket_id; kal_uint8 val 1; kal_int32 nwt_acount_id 6; kal_uint8 addr[4] {127,0,0,1}; sockaddr_struct server_ip_addr; int rc; int err; char send_buffer[256]{0}; soc_init_win32(); //创建SOCKET s…

嵌入式系统终端分析

嵌入式系统终端分析 ------------------------------------本文系本站原创,欢迎转载! 转载请注明出处:http://sjj0412.cublog.cn/------------------------------------------ 当我们打开机器或一个嵌入式系统时&#xff0c;我们可能都适应了它会显示信息&#xff0c;我们也…

container_of

container_of 理解 收藏 问题&#xff1a;如何通过结构中的某个变量获取结构本身的指针&#xff1f;&#xff1f;&#xff1f; 关于container_of见kernel.h中:/*** container_of - cast a member of a structure out to the containing structure* ptr: the pointer to t…

u-boot启动过程分析

从源代码看系统启动过程 为什么要分析源代码&#xff1f;分析优秀的源代码本身就是一个学习的过程&#xff0c;也是进行深入研究的必经之路。不过在此我们的主要目的并非要研究U-boot或Bootloader技术本身&#xff0c;而仅仅是为了成功的并且恰当的将U-Boot移植到我们的开发板…

二叉树的建立删除及三种遍历实现

二叉树的建立、删除及三种遍历的C实现 教材上的Tree类写法太累赘&#xff0c;不实用&#xff0c;将树节点直接写成结构体即可 要理解结点的含义以及根结点的重要意义 #include <stdio.h> #include <stdlib.h> //用CPP文件编写&#xff0c;否则编译出错&#xff…

Linux 常用C函数(接口处理篇2)

Linux 常用C函数(接口处理篇2)2007-03-22 11:29ntohl&#xff08;将32位网络字符顺序转换成主机字符顺序&#xff09; 相关函数 htonl&#xff0c;htons&#xff0c;ntohs 表头文件 #include<netinet/in.h> 定义函数 unsigned long int ntohl(unsigned long int netlong…

在具有多态特性的类体系中,向客户提供使用接口,而不去暴露类的体系结构。

先举个例子&#xff0c;我们在开发中&#xff0c;经常会处理很多异步消息&#xff0c;比如&#xff1a;io消息、信号、定时器等&#xff0c;现在我们就建立一个消息处理器系统&#xff0c;代码如下&#xff1a; struct msg{ int msg_id;char data[1];};class BaseMsgProcess…

Linux 常用C函数(接口处理篇1)

Linux 常用C函数(接口处理篇1)2007-03-22 11:30accept&#xff08;接受socket连线&#xff09; 相关函数 socket&#xff0c;bind&#xff0c;listen&#xff0c;connect 表头文件 #include<sys/types.h>#include<sys/socket.h> 定义函数 int accept(int s,struct…

WinCE中的Debug Zone调试

在WinCE的开发环境中支持Debug Zones功能&#xff0c;通常也被称为调试域&#xff0c;通过它可以控制打印信息。当某个调试域被打开以后&#xff0c;在这个域中的打印信息就会被打印出来&#xff0c;如果某个调试域被关闭了&#xff0c;那么这个域中的打印信息就会被关闭。调试…

HDU 1160 FatMouse's Speed 动态规划

HDU 1160 FatMouses Speed 这是最长上升子序列问题向二维的一个扩展变形 设Mice[i].W表示第i只老鼠的重量&#xff0c;Mice[i].S表示第i只老鼠的速度。我们先对Mice进行排序&#xff0c;以W为第一关键字&#xff0c;从小到大&#xff0c;S为第二关键字&#xff0c;从大到小设…

MATLAB中mexFunction函数的接口规范

原文地址&#xff1a;MATLAB中mexFunction函数的接口规范作者&#xff1a;wennaisongvoid mexFunction(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[])nlhs&#xff1a;输出参数数目 plhs&#xff1a;指向输出参数的指针 nrhs&#xff1a;输入参数数目 例如&…

Android筆記

好一段時間 , 都在 ARM based RTOS 通訊產品中開發 , 很難有機會回到 Embedded Linux 的領域 , 而 Linux 上所擁有的豐富資源 , 更是凡事都要親力親為的 RTOS 環境所不能比擬的 . 最近 , 有機會參與移植 Android 到新的晶片計畫 , 也藉此機會 , 把 Android 的基礎工程做一個 R…