Welcome 微信登录
编程资源 图片资源库 蚂蚁家优选 PDF转换器

首页 / 操作系统 / Linux

《UNIX网络编程》例子程序中所使用的包裹函数及部分常量

《UNIX网络编程》例子程序中所使用的包裹函数及部分常量

《UNIX网络编程套接字联网API》这本书的示例中定义了许多包裹函数,它们的名称和标准函数一样,只是首字母变成大写字母;每个包裹函数完成实际的函数调用,检查返回值,并在发生错误时终止程序。我在重写书上例子的时候,也仿照书上的方式,定义了许多包裹函数,提高程序的可读性(当然,我定义的包裹函数的错误处理没有书上例子这么详细了)《Unix网络编程》PDF版下载地址:http://www.linuxidc.com/Linux/2013-01/77936.htm文件...
UNIX TCP回射服务器/客户端

UNIX TCP回射服务器/客户端

《Unix网络编程》这本书附带了许多短小精美的小程序,我在阅读此书的时候,将书上的代码按照自己的理解重写了一遍(大部分是抄书上的),加深一下自己的理解(纯看书太困了,呵呵)。此例子在Ubuntu 10.04上测试通过。PS:程序里使用了包裹函数(首字母是大写的函数)和常量(所有字母都是大写的常量)的声明在my_unp.h文件中,定义在unp_base.c和unp_thread.c中,地址:http://www.linuxidc.com/Linux/2013...
Hibernate框架映射Oracle中long类型字段

Hibernate框架映射Oracle中long类型字段

首先谈谈关于Oracle中的long类型。百度一下可知道。long在Oracle中并非同Java当中的基本数据类型long,前者是字符串类型,后者则是长整形。对于像我这样的初学者肯定很容易误以为两者相同。在Oracle中:LONG 数据类型中存储的是可变长字符串,最大长度限制是2GB;对于超出一定长度的文本,基本只能用LONG类型来存储,数据字典中很多对象的定义就是用LONG来存储的(当然你也可以考虑使用像CLOB这种大字段处理这些文本);LONG类型主要...
Linux下多线程通过蒙特卡洛法来求取pi值

Linux下多线程通过蒙特卡洛法来求取pi值

特卡洛法又称随机抽样技术是一种应用随机数进行仿真试验的方法。用该方法计算π的基本思路是:根据圆面积的公式: s=πR2 ,当R=1时,S=π。由于圆的方程是:x2+y2=1(X2为X的平方的意思),因此1/4圆面积为X轴、y轴和上述方程所包围的部分。如果在1*1的矩形中均匀地落入随机点,则落入1/4园中的点的概率就是1/4圆的面积。其4倍,就是圆面积。由于半径为1,该面积的值为π的值。#include <pthread.h&g...
HBase用一个MR同时写入两张表

HBase用一个MR同时写入两张表

以前在学习HBase的时候,也曾想过是否可以在一个MR中同时写入两个表,但以前在网上找的时候都找不到比较相关的答案,这两天又重新找了下,居然有类似的实现,然后就自己参考着写了下,基本可以运行(本文参考:http://www.wildnove.com/2011/07/19/tutorial-Hadoop-and-hbase-multitableoutputformat/),下面就详细说下思路:原始数据如下:fansy,22,blog.csdu.net/fan...
C语言实现字符串替换函数

C语言实现字符串替换函数

C语言中没有提供字符串替换函数,网上能找到的类似函数也只是能替换一个,不能替换全部,工作中却常常要用到这个功能,故实现一个函数。该函数所使用到的相关函数均是自己实现,没有调用库函数。相关代码如下:/********************************************************************* Function:my_strstr()* Description: 在一个字符串中查找一个子串;* Calls: 无;...
S3C2410下寄存器地址虚实映射的实现

S3C2410下寄存器地址虚实映射的实现

我们知道在我们的驱动里面一般操作的寄存器的地址都是虚拟地址, 然而一般在cpu的datasheet里描述的寄存器的地址都是物理地址, 那linux内核是如何把我们驱动中指定操作的虚拟地址转换成正真可寻址并操作的物理地址的呢? 这篇文档以s3c2410为例, 将详细的描述这么一个实现流程。通过这篇文章,将能够很好了解的虚实映射的过程。(本篇文章并非本人原著,只是整理以提供给大家交流学习。分析的不错) S3C2410使用的是arm920T的核,它支持MM...
FS_S5PC100平台上Linux Camera驱动开发详解

FS_S5PC100平台上Linux Camera驱动开发详解

说明: 理解摄像头驱动需要四个前提: 1)摄像头基本的工作原理和S5PC100集成的Camera控制器的工作原理 2)platform_device和platform_driver工作原理 3)Linux内核V4L2驱动架构 4)Linux内核I2C驱动架构1. 摄像头工作原理OV9650/9655是CMOS接口的图像传感器芯片,可以感知外部的视觉信号并将其转换为数字信号并输出。通过下面的框图可以清晰的看到它的工作原理:我们需...
Linux环境变量种类、文件、设置

Linux环境变量种类、文件、设置

前言:1. 环境变量是操作系统环境设置的变量,适用于整个系统的用户进程;2. 环境变量可以在命令中设置,但是用户注销的时候将会丢失这些设置值;3. 若要重复适用,则最好在.profile中定义;环境变量的使用与本地变量的使用方法相同,4. 但是在使用之前,必须用export命令导出。一.Linux的变量种类按变量的生存周期来划分,Linux变量可分为两类:1.永久的:需要修改配置文件,变量永久生效2.临时的:使用export命令声明即可,变量在关闭shel...
Linux内核哈希表分析与应用

Linux内核哈希表分析与应用

前言:1.基本概念:散列表(Hash table,也叫哈希表),是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。2. 常用的构造散列函数的方法散列函数能使对一个数据序列的访问过程更加迅速有效,通过散列函数,数据元素将被更快地定位。散列表的常用构造方法有: (1)直接定址法 (2)数字分析法 (3)平方取中法 (4)折叠...
Linux内核链表的研究与应用

Linux内核链表的研究与应用

前言:在Linux内核中使用了大量的链表来组织其数据,其采用了双向链表作为其基本的数据结构。但是与我们传统的数据结构中所学的双向链表又有着本质的一些不同(其不包含数据域)。其主要是Linux内核链表在设计时给出了一种抽象的定义。采用这种定义有以下两种好处:1是可扩展性,2是封装。可扩展性肯定是必须的,内核一直都是在发展中的,所以代码都不能写成死代码,要方便修改和追加。将链表常见的操作都进行封装,使用者只关注接口,不需关注实现。分析内核中的链表我们可以做些什...
Linux内核开发:container_of分析

Linux内核开发:container_of分析

1.container_of宏1> Container_of在Linux内核中是一个常用的宏,用于从包含在某个结构中的指针获得结构本身的指针,通俗地讲就是通过结构体变量中某个成员的首地址进而获得整个结构体变量的首地址。2>接口:container_of(ptr, type, member) ?ptr:表示结构体中member的地址?type:表示结构体类型?member:表示结构体中的成员通过ptr的地址可以返回结构体的首地址3> con...
<< 3491 3492 3493 3494 3495 3496 3497 3498 3499 3500 >>