自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(51)
  • 收藏
  • 关注

原创 理清Linux中的各种用户ID关系

作者:lvyilong316绿色代表进程(进程的性质)橙色代表文件(文件的性质)。当进程试图打开文件时,内核会进行如下权限测试:0. 若进程的有效用户ID是0(超级用户),则允许访问。1. 若进程的有效用户ID等于文件的所有者ID,那么进行文件所有者访问权限的测试(与open的参数对比),对应图中的1。2. 若进程的有效组ID或进程的附加组ID之一等于文件的

2014-05-14 09:12:31 300

原创 从select的一个死循环谈epoll的ET模式

最近写程序遇到一个问题,就是发现select监听标准输出的时候遇到了死循环,具体程序如下程序一。程序的意图是每当用户在控制台有任何输入,就输出”hello world!”。程序一:#include #include #include #include int main(int argc, char *argv[]){

2014-05-14 09:11:10 277

原创 从RTTI谈C++的向下转型

1.什么是RTTI?RTTI 是“Runtime Type Information”的缩写,意思是:运行时类型信息。它提供了运行时确定对象类型的方法。允许“用指向基类的指针或引用来操纵对象”的程序能够获取到“这些指针或引用所指对象”的实际派生类型。在 c++中,为了支持 RTTI 提供了两个操作符 :     1 dynamic_cast 操作符:它允许在运行时刻进行类型转换,从而使程

2014-05-14 08:38:37 329

原创 Linux文件共享(三)——dup

dup返回的新文件描述符是当前可用文件描述符中的最小值。它返回的新描述符与参数fd共享一个文件表项(file对象)。调用dup会使file的引用计数增1,即增加“打开文件”引用计数。图3-3是apue中的原图。我们用以下程序测试并说明:点击(此处)折叠或打开#include stdio.h>#include unistd.h>

2014-05-13 10:47:23 146

原创 Linux文件共享(四)——父进程与子进程之间的文件共享

注:转载请注明出处    作者:lvyilong316由fork产生的进程为子进程。fork的一个特性是父进程所有的打开文件描述符(file_struct)都被复制到子进程中,父子进程的每个相同的打开描述符共享一个文件表项如图。在linux系统中的具体实现可用下图表示(说明:进程的fs_struct也会被复制,图中没有画出)。这种共享的方式使父、子进程对同一个文件使

2014-05-13 10:47:00 298

原创 Linux文件共享(五)——线程共享文件

注:转载请注明出处   作者:lvyilong3164.1 Linux线程实现注:转载请注明出处   作者:lvyilong316在谈论线程之间共享文件之前,我想首先简单的介绍下linux线程的实现。最初的进程定义都包含程序、资源及其执行三部分,其中程序通常指代码,资源在操作系统层面上通常包括内存资源、IO资源、信号处理等部分,而程序的执行通常理解为执行上下文,包括对cpu的占

2014-05-13 10:45:24 135

原创 Linux文件共享(六)——描述符传递

注:转载请注明出处  作者:lvyilong3165.1 进程间描述符传递首先,我们先来讨论一个问题——进程间传递文件描述符究竟传递的是什么?我们从传递描述符函数的参数来看是个fd,我们知道fd是打开文件指针的在数组中的下标,是一个整数,那么我们仅仅是把一个整数传递给另一个进程吗?答案肯定是否定的,因为仅仅是传递整数值,没有必要专门去实现一个api。至于深层次的的原因,我们

2014-05-13 10:44:50 93

原创 NULL, 0, 空格与'0','\0'

NULL其实是一个宏,定义为0,#include 里是:#ifndef NULL#ifdef  __cplusplus#define NULL    0#else#define NULL    ((void *)0)#endif#endif  判断指针是否为空时,p==NULL, 或p==0是一样的意思,但习惯用NULL更好。  后面的空格(' ')与'0',

2014-05-13 10:37:47 122

原创 ASp.net 剖析三层架构

三层实现的留言和查看留言本文不是从理论的角度来探讨三层架构,而是用一个示例来介绍如何建设一个三层架构的项目,并说明项目中各个文件所处的层次与作用。写本文的目的,不是为了说明自己的这个方法有多对,别人的肯定不对,而是希望给那些初学三层架构却不知从何入手的朋友提供一点帮助。因为网上的文章,大多是注重理论的介绍,而忽略了具体的实践应用,或者有示例但讲得不透彻。导致看了之后,理论上又学习了一遍,但

2014-05-13 10:33:51 84

原创 C&C++混合编程

首先,混合编程不是指在同一个文件里写C与C++。混合编程包括:1,C++引用C的头文件;2,g++生成的.o与gcc生成的.o相链接。一、extern“C”的作用(最重点)    1. extern "C"的真实目的是实现类C和C++的混合编程。extern “C”是由C++提供的一个连接交换指定符号,用于告诉C++这段代码是C函数。extern “C”后面的函数不使用的C

2014-05-13 10:29:55 95

原创 C++箭头(->)运算符的重载

箭头操作符(->)的通常用法是,使用一个类对象的指针来调用该指针所指对象的成员。左操作数为对象指针(this),右操作数为该对象的成员名称。定义重载箭头操作符之后看起来就有点特别,可以用类对象的指针来调用,也可以用类对象直接调用。重载箭头操作符必须定义为类成员函数。箭头操作符与众不同。它可能表现得像二元操作符一样:接受一个对象和一个成员名。对对象解引用以获取成员。不管外表如何,箭头操作符不

2014-05-13 10:26:25 307

原创 最长单调递增子序列

问题描述:求一个正整数序列的最长单调自增子序列,子序列不要求是连续的。例如Input:55 2 4 3 1Output:2(1) 算法复杂度是O(N*N)f[i]是以a[i]为最大值的子序列,那么f[]的最大值就是要的结果。点击(此处)折叠或打开int f[],a[];f[0] = 1;

2014-05-13 10:22:29 140

原创 C的“类型提升”

写在前面:本来因为一个朋友问我为什么可以给unsigned int赋值负数,我打算写一篇关于解释unsigned的文章。但是写的过程中发现有很多地方需要涉及其他的知识点,特别是关于整型提升和算数转换。所以就翻了一下之前看过的书,做了一个总结,感觉自己又学到了不少。由于我不是写教科书,有些用语和描述难免不够准确。另外,由于本人能力有限,有错之处在所难免,希望各位看到此文的朋友如果发现有什么错误请留言

2014-05-13 10:07:37 185

原创 “C”中的算数转换

写在前面:本来因为一个朋友问我为什么可以给unsigned int赋值负数,我打算写一篇关于解释unsigned的文章。但是写的过程中发现有很多地方需要涉及其他的知识点,特别是关于整型提升和算数转换。所以就翻了一下之前看过的书,做了一个总结,感觉自己又学到了不少。由于我不是写教科书,有些用语和描述难免不够准确。另外,由于本人能力有限,有错之处在所难免,希望各位看到此文的朋友如果发现有什么错误请留言

2014-05-13 10:06:00 234

原创 unsigned和signed

写在前面:本来因为一个朋友问我为什么可以给unsigned int赋值负数,我打算写一篇关于解释unsigned的文章。但是写的过程中发现有很多地方需要涉及其他的知识点,特别是关于整型提升和算数转换。所以就翻了一下之前看过的书,做了一个总结,感觉自己又学到了不少。由于我不是写教科书,有些用语和描述难免不够准确。另外,由于本人能力有限,有错之处在所难免,希望各位看到此文的朋友如果发现有什么错误请留言

2014-05-13 10:00:49 248

原创 Epoll模型详解

1. 内核中提高I/O性能的新方法epollepoll是什么?按照man手册的说法:是为处理大批量句柄而作了改进的poll。要使用epoll只需要这三个系统调 用:epoll_create(2), epoll_ctl(2), epoll_wait(2)。当然,这不是2.6内核才有的,它是在 2.5.44内核中被引进的(epoll(4) is a new API introduced in 

2014-05-13 09:58:12 137

原创 fgets、gets与fputs、puts

我们知道着两个函数都提供每次输入一行的功能。然而gets是一个不推荐使用的函数,其原因是使用gets不能指定缓冲区的长度,这样就可能造成缓冲区的溢出。除了gets只能操作标准输入(stdin)外,gets和fgets还有另一个区别——gets并不将换行符读入缓冲区中。例如:输入”abcde\n”,那么gets时缓冲区中只用”abcde”而没有”\n”。相反fgets则会完整的读入”abcde\n”

2014-05-13 09:51:57 244

原创 poll&&epoll实现分析(一)——poll实现

0.等待队列在Linux内核中等待队列有很多用途,可用于中断处理、进程同步及定时。我们在这里只说,进程经常必须等待某些事件的发生。等待队列实现了在事件上的条件等待: 希望等待特定事件的进程把自己放进合适的等待队列,并放弃控制全。因此,等待队列表示一组睡眠的进程,当某一条件为真时,由内核唤醒它们。等待队列由循环链表实现,由等待队列头(wait_queue_head_t)和等待队列

2014-05-13 09:41:36 832 1

原创 poll&&epoll实现分析(二)——epoll实现

Epoll实现分析——作者:lvyilong316通过上一章分析,poll运行效率的两个瓶颈已经找出,现在的问题是怎么改进。首先,如果要监听1000个fd,每次poll都要把1000个fd 拷入内核,太不科学了,内核干嘛不自己保存已经拷入的fd呢?答对了,epoll就是自己保存拷入的fd,它的API就已经说明了这一点——不是 epoll_wait的时候才传入fd,而是通过epoll_ctl

2014-05-13 09:29:48 261

原创 理清Linux中的各种用户ID关系

绿色代表进程(进程的性质)橙色代表文件(文件的性质)。当进程试图打开文件时,内核会进行如下权限测试:0. 若进程的有效用户ID是0(超级用户),则允许访问。1. 若进程的有效用户ID等于文件的所有者ID,那么进行文件所有者访问权限的测试(与open的参数对比),对应图中的1。2. 若进程的有效组ID或进程的附加组ID之一等于文件的组ID,则进行文件所属组的权限测试,对应图中

2014-05-13 09:27:36 321

原创 从select的一个死循环谈epoll的ET模式

——作者:lvyilong316最近写程序遇到一个问题,就是发现select监听标准输出的时候遇到了死循环,具体程序如下程序一。程序的意图是每当用户在控制台有任何输入,就输出”hello world!”。程序一:#include #include #include #include int main(int argc, c

2014-05-13 09:21:54 309

原创 inux下C中怎么让才能安全关闭线程

前言:    多线程程序中,特别是频繁申请,释放线程的情况下,就要注意线程的关闭,最好使用线程池。一,线程退出方式    (1) 执行完成后隐式退出;    (2) 由线程本身显示调用pthread_exit 函数退出;            pthread_exit (void * retval) ;     (3) 被其他线程用pthread_c

2014-05-13 01:10:40 384

原创 Linux串口编程详解

串口本身,标准和硬件 ?串口是计算机上的串行通讯的物理接口。计算机历史上,串口曾经被广泛用于连接计算机和终端设备和各种外部设备。虽然以太网接口和USB接口也是以一个串行流进行数据传送的,但是串口连接通常特指那些与RS-232标准兼容的硬件或者调制解调器的接口。虽然现在在很多个人计算机上,原来用以连接外部设备的串口已经广泛的被USB和Firewire替代;而原来用以连接网络的串口则被以太网替

2014-05-12 23:37:38 221

原创 Linux串口编程详解

串口本身,标准和硬件 ?串口是计算机上的串行通讯的物理接口。计算机历史上,串口曾经被广泛用于连接计算机和终端设备和各种外部设备。虽然以太网接口和USB接口也是以一个串行流进行数据传送的,但是串口连接通常特指那些与RS-232标准兼容的硬件或者调制解调器的接口。虽然现在在很多个人计算机上,原来用以连接外部设备的串口已经广泛的被USB和Firewire替代;而原来用以连接网络的串口则被以太网替

2014-05-12 23:36:54 73

原创 Marketing profits of Non woven bags business

Non woven bags business conditions in the production process often appear to expand production scale, shorten the production cycle to produce more products, market share, in fact, corporate profits No

2014-05-12 23:33:20 202

原创 OpenCV: OpenCv移植到ARM-Linux

安装opencv2.0解压OpenCV-2.0.0.tar.bz2tar xvf OpenCV-2.0.0.tar.bz2配置./configure --host=arm-linux \--without-carbon \--without-quicktime \--without-1394libs \--without-ffmpeg \--wi

2014-05-12 23:32:42 223

原创 Wooden plywood vs. BAMBOO PLYWOOD | Differences & Applications

Wooden plywood vs. BAMBOO PLYWOOD | Differences & Applications Question: What is the difference between Wooden plywood and Bamboo plywood (BAMBOO PLYWOOD)?  What are the appropriate uses

2014-05-12 21:44:22 188

原创 CentOs6.5下安装vim7.4

部分一:vim7.4安装系统版本centos6.5;root权限su - root   卸载$ rpm -qa | grep vim$ yum remove vim vim-enhanced vim-common vim-minimal   下载、解压$ wget ftp://ftp.vim.org/pub/vim

2014-05-12 21:42:45 107

原创 PL/SQL Developer使用技巧、快捷键

1、类SQL PLUS窗口:File->New->Command Window,这个类似于oracle的客户端工具sql plus,但比它好用多了。2、设置关键字自动大写:Tools->Preferences->Editor,将Keyword case选择Uppercase。这样在窗口中输入sql语句时,关键字会自动大写,而其它都是小写。这样阅读代码比较容易,且保持良好得编码风格,同理,在

2014-05-12 21:39:38 96

原创 Hollister Klagenfurt Villach 97558-Im Ha

Im Halbfinale hatten die Achtelfinalbezwinger von Clemens Doppler/Alexander Horst auch Jonathan Erdmann/Kay Matysik ohne Satzverlust besiegt. 17, der ? so wenig wie nie zuvor.EDINGA - Rock aus Alt

2014-05-12 21:38:37 284

原创 Android图片异步加载之Android-Universal-Image-Loader类库的使用

Android开发中我们会经常遇到图片过多或操作不当造成Out of Memory异常,有时虽然是解决了这个问题但却会影响程序的运行效率,例如:当用户在快速滑动滚动条的过程中,我们程序在仍在艰难的加载服务器端的图片,这样给用户造成了极不好的体验。其实网络上关于图片的异步加载和缓存的讲解很多,但是其实,写一个这方面的程序还是比较麻烦的,要考虑多线程,缓存,内存溢出等很多方面,针对这一广大开发者都

2014-05-12 21:34:18 283

原创 其实苹果已配备手柄 若Apple TV成为主机

自苹果宣布iOS 7撑持手柄认证之后,外设厂商纷繁出动推出自个的试水产品。到现在为止咱们看到了MOGA、罗技、雷蛇以及赛睿等iOS 7手柄。信任绝大多数玩家都以为这些手柄只是为iPhone、iPad又或者是iPod touch打造的外设,实际上很多人都疏忽了:Apple TV也有能够从中受惠。  咱们此前现已听过这样的风闻:下一代Apple TV将会搭载一个全新的操作系统与世人见面。不仅如

2014-05-12 21:30:04 292

原创 YUV420p快速转RGB

typedef   UCHAR    uint8_t;typedef   ULONGLONG   uint64_t;#define MAXIMUM_Y_WIDTH 2000static uint64_t mmw_mult_Y    = 0x2568256825682568;static uint64_t mmw_mult_U_G  = 0xf36ef36ef36ef36e;

2014-05-12 21:25:45 264

原创 Java领域的IM解决方案

Java领域的即时通信的解决方案可以考虑openfire+spark+smack。当然也有其他的选择。Openfire是基于Jabber协议(XMPP)实现的即时通信服务器端版本,目前建议使用3.6.4版本,这个版本是当前最新的版本,而且网上可以找到下载的源代码。即时通信客户端可使用spark2.5.8,这个版本是目前最新的release版本,经过测试发现上一版本在视频支持,msn网关支持

2014-05-12 21:21:48 347

原创 高级套接口-(sendmsg和recvmsg)

已经工作了接近一年的时间,工作之余也只能看看书,了解一下相关的技术细节,在网络设备公司不可避免的要和socket打交道,但通常都是调用公司封装好的接口,没有去考虑这些封装背后的工作,回过头来看真的觉得进步很小,我只能逼自己看看书,看看一些好的代码。sendmsg和recvmsg这两个接口是高级套接口,这两个接口支持一般数据的发送和接收,还支持多缓冲区的报文发送和接收(readv和sendv

2014-05-12 21:20:53 1048

原创 Patrick Sharp Jersey Obviously

l and dished out an assist in the Blackhawks' 5-3 win over the Nashville Predators.Shaw said just playing with the Blackhawks was enough motivation for him."Positive, I'm playing in the NHL," Shaw s

2014-05-12 20:36:32 201

原创 Rotary Cut Birch plywood-B-2, C-2, D-3 per HPVA bjzi

<img title="rotary cut birch plywood-b-2, c-2, d-3 per hpva" alt="rotary cut birch plywood-b-2, c-2, d-3 per hpva" src="http://s4.sinaimg.cn/bmiddle/507a9ec8g70eb46e60533&690" real_src="http://s4.si

2014-05-12 20:06:47 238

原创 red oak plywood- plain sliced and rotary cut myav

<img title="red oak plywood- plain sliced and rotary cut" alt="red oak plywood- plain sliced and rotary cut" src="http://s12.sinaimg.cn/bmiddle/507a9ec8g70eb53f7624b&690" real_src="http://s12.sinaim

2014-05-12 19:55:25 272

原创 AVA实例化类的四种方法

原文地址:JAVA实例化类的四种方法 作者:权镜士JAVA中实例化类的四种方法1)使用new操作符2)调用Class对象的newInstance()方法3)调用clone()方法,对现有实例的拷贝4)通过ObjectInputStream的readObject()方法反序列化类点击(此处)折叠或打开impo

2014-05-12 19:38:08 341

原创 这个.c文件根本就不是用来编译运行的

#define DEFINE(sym, val) \        asm volatile("\n->" #sym " %0 " #val : : "i" (val))那个宏定义在asm-offsets.c中,这个.c文件根本就不是用来编译运行的,只是在编译内核的时候,用它生成一个asm-offsets.s文件,然后使用一个脚本将这个asm-offsets.s再转换为asm-offset

2014-05-12 19:12:46 253

空空如也

空空如也

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

TA关注的人

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